From e709cea41b2d85b5ce36c4eea06ed1ed5dcdf5ee Mon Sep 17 00:00:00 2001 From: denver Date: Mon, 10 Mar 2025 19:26:18 -0500 Subject: [PATCH 1/7] docs: add codeblocks to config.py --- ...ngle_prompt_doc_generator_module_eval.yaml | 2 +- graphdoc/graphdoc/config.py | 512 ++++++++++-------- 2 files changed, 300 insertions(+), 214 deletions(-) diff --git a/graphdoc/assets/configs/single_prompt_doc_generator_module_eval.yaml b/graphdoc/assets/configs/single_prompt_doc_generator_module_eval.yaml index 2be6156..2aeb572 100644 --- a/graphdoc/assets/configs/single_prompt_doc_generator_module_eval.yaml +++ b/graphdoc/assets/configs/single_prompt_doc_generator_module_eval.yaml @@ -5,7 +5,7 @@ graphdoc: mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server mlflow: - mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow + mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow mlflow_tracking_username: !env MLFLOW_TRACKING_USERNAME # The username for the mlflow tracking server mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server diff --git a/graphdoc/graphdoc/config.py b/graphdoc/graphdoc/config.py index da1a463..c546dc7 100644 --- a/graphdoc/graphdoc/config.py +++ b/graphdoc/graphdoc/config.py @@ -35,6 +35,19 @@ def mlflow_data_helper_from_dict(mlflow_config: dict) -> MlflowDataHelper: + """ + Load a mlflow data helper from a dictionary of parameters. + + :param mlflow_config: Dictionary containing mlflow parameters. + :type mlflow_config: dict + + .. code-block:: json + { + "mlflow_tracking_uri": "http://localhost:5000", + "mlflow_tracking_username": "admin", + "mlflow_tracking_password": "password" + } + """ return MlflowDataHelper( mlflow_tracking_uri=mlflow_config["mlflow_tracking_uri"], mlflow_tracking_username=mlflow_config["mlflow_tracking_username"], @@ -43,6 +56,18 @@ def mlflow_data_helper_from_dict(mlflow_config: dict) -> MlflowDataHelper: def mlflow_data_helper_from_yaml(yaml_path: Union[str, Path]) -> MlflowDataHelper: + """ + Load a mlflow data helper from a YAML file. + + :param yaml_path: Path to the YAML file. + :type yaml_path: Union[str, Path] + + .. code-block:: yaml + mlflow: + mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow + mlflow_tracking_username: !env MLFLOW_TRACKING_USERNAME # The username for the mlflow tracking server + mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server + """ config = load_yaml_config(yaml_path) return mlflow_data_helper_from_dict( config["mlflow"], @@ -56,31 +81,32 @@ def trainset_from_dict(trainset_dict: dict) -> List[dspy.Example]: """ Load a trainset from a dictionary of parameters. - { - "hf_api_key": !env HF_DATASET_KEY, # Must be a valid Hugging - # Face API key - # (with permission to - # access graphdoc) - # TODO: we may make - # this public in the future - "load_from_hf": false, # Whether to load the dataset - # from Hugging Face - "load_from_local": true, # Whether to load the dataset - # from a local directory - "load_local_specific_category": false, # Whether to load all categories - # or a specific category - "local_specific_category": perfect, # The specific category - # (if load_from_local is true) - "local_parse_objects": true, # Whether to parse the objects - # in the dataset - # (if load_from_local is true) - "split_for_eval": true, # Whether to split the dataset - # into trainset and evalset - "trainset_size": 1000, # The size of the trainset - "evalset_ratio": 0.1, # The proportionate size of evalset - "data_helper_type": "quality" # Type of data helper to use - # (quality, generation) - } + .. code-block:: yaml + { + "hf_api_key": !env HF_DATASET_KEY, # Must be a valid Hugging + # Face API key + # (with permission to + # access graphdoc) + # TODO: we may make + # this public in the future + "load_from_hf": false, # Whether to load the dataset + # from Hugging Face + "load_from_local": true, # Whether to load the dataset + # from a local directory + "load_local_specific_category": false, # Whether to load all categories + # or a specific category + "local_specific_category": perfect, # The specific category + # (if load_from_local is true) + "local_parse_objects": true, # Whether to parse the objects + # in the dataset + # (if load_from_local is true) + "split_for_eval": true, # Whether to split the dataset + # into trainset and evalset + "trainset_size": 1000, # The size of the trainset + "evalset_ratio": 0.1, # The proportionate size of evalset + "data_helper_type": "quality" # Type of data helper to use + # (quality, generation) + } :param trainset_dict: Dictionary containing trainset parameters. :type trainset_dict: dict @@ -124,25 +150,26 @@ def trainset_from_dict(trainset_dict: dict) -> List[dspy.Example]: def trainset_from_yaml(yaml_path: Union[str, Path]) -> List[dspy.Example]: """Load a trainset from a YAML file. - data: - hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key - # (with permission to access graphdoc) - # TODO: we may make this public - load_from_hf: false # Load the dataset from Hugging Face - load_from_local: true # Load the dataset from a local directory - load_local_specific_category: false # Load all categories or a specific category - # (if load_from_local is true) - local_specific_category: perfect, # Which category to load from the dataset - # (if load_from_local is true) - local_parse_objects: true, # Whether to parse the objects - # in the dataset - # (if load_from_local is true) - split_for_eval: true, # Whether to split the dataset - # into trainset and evalset - trainset_size: 1000, # The size of the trainset - evalset_ratio: 0.1, # The proportionate size of evalset - data_helper_type: quality # Type of data helper to use - # (quality, generation) + .. code-block:: yaml + data: + hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key + # (with permission to access graphdoc) + # TODO: we may make this public + load_from_hf: false # Load the dataset from Hugging Face + load_from_local: true # Load the dataset from a local directory + load_local_specific_category: false # Load all categories or a specific category + # (if load_from_local is true) + local_specific_category: perfect, # Which category to load from the dataset + # (if load_from_local is true) + local_parse_objects: true, # Whether to parse the objects + # in the dataset + # (if load_from_local is true) + split_for_eval: true, # Whether to split the dataset + # into trainset and evalset + trainset_size: 1000, # The size of the trainset + evalset_ratio: 0.1, # The proportionate size of evalset + data_helper_type: quality # Type of data helper to use + # (quality, generation) :param yaml_path: Path to the YAML file. :type yaml_path: Union[str, Path] @@ -181,26 +208,27 @@ def trainset_and_evalset_from_yaml( ) -> tuple[List[dspy.Example], List[dspy.Example]]: """Load a trainset and evalset from a YAML file. - data: - hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key - # (with permission to access graphdoc) - # TODO: we may make this public - load_from_hf: false # Load the dataset from Hugging Face - load_from_local: true # Load the dataset from a local directory - load_local_specific_category: false # Load all categories or a specific category - # (if load_from_local is true) - local_specific_category: perfect, # Which category to load from the dataset - # (if load_from_local is true) - local_parse_objects: true, # Whether to parse the objects - # in the dataset - # (if load_from_local is true) - split_for_eval: true, # Whether to split the dataset - # into trainset and evalset - trainset_size: 1000, # The size of the trainset - evalset_ratio: 0.1, # The proportionate size of evalset - data_helper_type: quality # Type of data helper to use - # (quality, generation) - seed: 42 # The seed for the random number generator + .. code-block:: yaml + data: + hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key + # (with permission to access graphdoc) + # TODO: we may make this public + load_from_hf: false # Load the dataset from Hugging Face + load_from_local: true # Load the dataset from a local directory + load_local_specific_category: false # Load all categories or a specific category + # (if load_from_local is true) + local_specific_category: perfect, # Which category to load from the dataset + # (if load_from_local is true) + local_parse_objects: true, # Whether to parse the objects + # in the dataset + # (if load_from_local is true) + split_for_eval: true, # Whether to split the dataset + # into trainset and evalset + trainset_size: 1000, # The size of the trainset + evalset_ratio: 0.1, # The proportionate size of evalset + data_helper_type: quality # Type of data helper to use + # (quality, generation) + seed: 42 # The seed for the random number generator :param yaml_path: Path to the YAML file. :type yaml_path: Union[str, Path] @@ -226,21 +254,22 @@ def single_prompt_from_dict( """ Load a single prompt from a dictionary of parameters. - { - "prompt": "doc_quality", # Which prompt signature to use - "class": "SchemaDocQualityPrompt", # Must be a child of SinglePrompt - "type": "predict", # The type of prompt to use - # (predict, chain_of_thought) - "metric": "rating", # The type of metric to use - # (rating, category) - "load_from_mlflow": false, # Whether to load the prompt from an MLFlow URI - "model_uri": null, # The tracking URI for MLflow - "model_name": null, # The name of the model in MLflow - "model_version": null # The version of the model in MLflow - "prompt_metric": False # Whether another prompt is used - # to calculate the metric - # (in which case we must also load that prompt) - } + .. code-block:: json + { + "prompt": "doc_quality", # Which prompt signature to use + "class": "SchemaDocQualityPrompt", # Must be a child of SinglePrompt + "type": "predict", # The type of prompt to use + # (predict, chain_of_thought) + "metric": "rating", # The type of metric to use + # (rating, category) + "load_from_mlflow": false, # Whether to load the prompt from an MLFlow URI + "model_uri": null, # The tracking URI for MLflow + "model_name": null, # The name of the model in MLflow + "model_version": null # The version of the model in MLflow + "prompt_metric": False # Whether another prompt is used + # to calculate the metric + # (in which case we must also load that prompt) + } :param prompt_dict: Dictionary containing prompt information. :type prompt_dict: dict @@ -277,34 +306,35 @@ def single_prompt_from_dict( def single_prompt_from_yaml(yaml_path: Union[str, Path]) -> SinglePrompt: """Load a single prompt from a YAML file. - prompt: - prompt: base_doc_gen # Which prompt signature to use - class: DocGeneratorPrompt # Must be a child of SinglePrompt - # (we will use an enum to map this) - type: chain_of_thought # The type of prompt to use - # (predict, chain_of_thought) - metric: rating # The type of metric to use - # (rating, category) - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: true # Whether another prompt is used - # to calculate the metric - # (in which case we must also load that prompt) - - prompt_metric: - prompt: doc_quality # The prompt to use to calculate - # the metric - class: DocQualityPrompt # The class of the prompt to use - # to calculate the metric - type: predict # The type of prompt to use - # to calculate the metric - metric: rating # The metric to use to calculate - # the metric - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI + .. code-block:: yaml + prompt: + prompt: base_doc_gen # Which prompt signature to use + class: DocGeneratorPrompt # Must be a child of SinglePrompt + # (we will use an enum to map this) + type: chain_of_thought # The type of prompt to use + # (predict, chain_of_thought) + metric: rating # The type of metric to use + # (rating, category) + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + prompt_metric: true # Whether another prompt is used + # to calculate the metric + # (in which case we must also load that prompt) + + prompt_metric: + prompt: doc_quality # The prompt to use to calculate + # the metric + class: DocQualityPrompt # The class of the prompt to use + # to calculate the metric + type: predict # The type of prompt to use + # to calculate the metric + metric: rating # The metric to use to calculate + # the metric + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI :param yaml_path: Path to the YAML file. :type yaml_path: str @@ -338,22 +368,23 @@ def single_trainer_from_dict( """ Load a single trainer from a dictionary of parameters. - { - "trainer": { - "class": "DocQualityTrainer", - "mlflow_model_name": "doc_quality_model", - "mlflow_experiment_name": "doc_quality_experiment", - "mlflow_tracking_uri": "http://localhost:5000" - }, - "optimizer": { - "optimizer_type": "miprov2", - "auto": "light", - "max_labeled_demos": 2, - "max_bootstrapped_demos": 4, - "num_trials": 2, - "minibatch": true - }, - } + .. code-block:: json + { + "trainer": { + "class": "DocQualityTrainer", + "mlflow_model_name": "doc_quality_model", + "mlflow_experiment_name": "doc_quality_experiment", + "mlflow_tracking_uri": "http://localhost:5000" + }, + "optimizer": { + "optimizer_type": "miprov2", + "auto": "light", + "max_labeled_demos": 2, + "max_bootstrapped_demos": 4, + "num_trials": 2, + "minibatch": true + }, + } :param trainer_dict: Dictionary containing trainer parameters. :type trainer_dict: dict @@ -386,53 +417,54 @@ def single_trainer_from_dict( def single_trainer_from_yaml(yaml_path: Union[str, Path]) -> SinglePromptTrainer: """Load a single prompt trainer from a YAML file. - trainer: - hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key - # (with permission to access graphdoc) - # TODO: we may make this public - load_from_hf: false # Load the dataset from Hugging Face - load_from_local: true # Load the dataset from a local directory - load_local_specific_category: false # Load all categories or a specific category - # (if load_from_local is true) - local_specific_category: perfect, # Which category to load from the dataset - # (if load_from_local is true) - local_parse_objects: true, # Whether to parse the objects - # in the dataset - # (if load_from_local is true) - split_for_eval: true, # Whether to split the dataset - # into trainset and evalset - trainset_size: 1000, # The size of the trainset - evalset_ratio: 0.1, # The proportionate size of evalset - - prompt: - prompt: base_doc_gen # Which prompt signature to use - class: DocGeneratorPrompt # Must be a child of SinglePrompt - # (we will use an enum to map this) - type: chain_of_thought # The type of prompt to use - # (predict, chain_of_thought) - metric: rating # The type of metric to use - # (rating, category) - load_from_mlflow: false # L oad the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: true # Whether another prompt is used - # to calculate the metric - # (in which case we must load prompt) - - prompt_metric: - prompt: doc_quality # The prompt to use to calculate the metric - class: DocQualityPrompt # The class of the prompt to use - # to calculate the metric - type: predict # The type of prompt to use - # to calculate the metric - metric: rating # The metric to use to calculate - # the metric - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow + .. code-block:: yaml + trainer: + hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key + # (with permission to access graphdoc) + # TODO: we may make this public + load_from_hf: false # Load the dataset from Hugging Face + load_from_local: true # Load the dataset from a local directory + load_local_specific_category: false # Load all categories or a specific category + # (if load_from_local is true) + local_specific_category: perfect, # Which category to load from the dataset + # (if load_from_local is true) + local_parse_objects: true, # Whether to parse the objects + # in the dataset + # (if load_from_local is true) + split_for_eval: true, # Whether to split the dataset + # into trainset and evalset + trainset_size: 1000, # The size of the trainset + evalset_ratio: 0.1, # The proportionate size of evalset + + prompt: + prompt: base_doc_gen # Which prompt signature to use + class: DocGeneratorPrompt # Must be a child of SinglePrompt + # (we will use an enum to map this) + type: chain_of_thought # The type of prompt to use + # (predict, chain_of_thought) + metric: rating # The type of metric to use + # (rating, category) + load_from_mlflow: false # L oad the prompt from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + prompt_metric: true # Whether another prompt is used + # to calculate the metric + # (in which case we must load prompt) + + prompt_metric: + prompt: doc_quality # The prompt to use to calculate the metric + class: DocQualityPrompt # The class of the prompt to use + # to calculate the metric + type: predict # The type of prompt to use + # to calculate the metric + metric: rating # The metric to use to calculate + # the metric + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow :param yaml_path: Path to the YAML file. :type yaml_path: Union[str, Path] @@ -459,12 +491,13 @@ def doc_generator_module_from_dict( """ Load a doc generator module from a dictionary of parameters. - { - "retry": true, - "retry_limit": 1, - "rating_threshold": 3, - "fill_empty_descriptions": true - } + .. code-block:: json + { + "retry": true, + "retry_limit": 1, + "rating_threshold": 3, + "fill_empty_descriptions": true + } :param module_dict: Dictionary containing module parameters. :type module_dict: dict @@ -485,43 +518,49 @@ def doc_generator_module_from_dict( def doc_generator_module_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorModule: """Load a doc generator module from a YAML file. - prompt: - prompt: base_doc_gen # Which prompt signature to use - class: DocGeneratorPrompt # Must be a child of SinglePrompt - # (we will use an enum to map this) - type: chain_of_thought # The type of prompt to use - # (predict, chain_of_thought) - metric: rating # The type of metric to use - # (rating, category) - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: true # Whether another prompt is used - # to calculate the metric - # (in which case we must load that prompt) + .. code-block:: yaml + prompt: + prompt: base_doc_gen # Which prompt signature to use + class: DocGeneratorPrompt # Must be a child of SinglePrompt + # (we will use an enum to map this) + type: chain_of_thought # The type of prompt to use + # (predict, chain_of_thought) + metric: rating # The type of metric to use + # (rating, category) + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + prompt_metric: true # Whether another prompt is used + # to calculate the metric + # (in which case we must load that prompt) + + prompt_metric: + prompt: doc_quality # The prompt to use to calculate the metric + class: DocQualityPrompt # The class of the prompt to use + # to calculate the metric + type: predict # The type of prompt to use + # to calculate the metric + metric: rating # The metric to use to calculate the metric + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + + module: + retry: true # Whether to retry the generation + # if the quality check fails + retry_limit: 1 # The maximum number of retries + rating_threshold: 3 # The rating threshold for the quality check + fill_empty_descriptions: true # Whether to fill empty descriptions with + # generated documentation - prompt_metric: - prompt: doc_quality # The prompt to use to calculate the metric - class: DocQualityPrompt # The class of the prompt to use - # to calculate the metric - type: predict # The type of prompt to use - # to calculate the metric - metric: rating # The metric to use to calculate the metric - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - - module: - retry: true # Whether to retry the generation - # if the quality check fails - retry_limit: 1 # The maximum number of retries - rating_threshold: 3 # The rating threshold for the quality check - fill_empty_descriptions: true # Whether to fill empty descriptions with - # generated documentation + :param yaml_path: Path to the YAML file. + :type yaml_path: Union[str, Path] + :return: A DocGeneratorModule object. + :rtype: DocGeneratorModule """ config = load_yaml_config(yaml_path)["module"] @@ -533,7 +572,54 @@ def doc_generator_module_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorM # Eval Methods # ####################### def doc_generator_eval_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorEvaluator: - """Load a doc generator evaluator from a YAML file.""" + """Load a doc generator evaluator from a YAML file. + + .. code-block:: yaml + mlflow: + mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow + mlflow_tracking_username: !env MLFLOW_TRACKING_USERNAME # The username for the mlflow tracking server + mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server + + prompt: + prompt: base_doc_gen # Which prompt signature to use + class: DocGeneratorPrompt # Must be a child of SinglePrompt (we will use an enum to map this) + type: chain_of_thought # The type of prompt to use (predict, chain_of_thought) + metric: rating # The type of metric to use (rating, category) + load_from_mlflow: false # Whether to load the prompt from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + prompt_metric: true # Whether another prompt is used to calculate the metric (in which case we must also load that prompt) + + prompt_metric: + prompt: doc_quality # The prompt to use to calculate the metric + class: DocQualityPrompt # The class of the prompt to use to calculate the metric + type: predict # The type of prompt to use to calculate the metric + metric: rating # The metric to use to calculate the metric + load_from_mlflow: false # Whether to load the prompt from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null + + module: + retry: true # Whether to retry the generation if the quality check fails + retry_limit: 1 # The maximum number of retries + rating_threshold: 3 # The rating threshold for the quality check + fill_empty_descriptions: true # Whether to fill the empty descriptions in the schema + + eval: + mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow + mlflow_experiment_name: doc_generator_eval # The name of the experiment in MLflow + generator_prediction_field: documented_schema # The field in the generator prediction to use + evaluator_prediction_field: rating # The field in the evaluator prediction to use + readable_value: 25 + + :param yaml_path: Path to the YAML file. + :type yaml_path: Union[str, Path] + :return: A DocGeneratorEvaluator object. + :rtype: DocGeneratorEvaluator + + """ # load the generator generator = doc_generator_module_from_yaml(yaml_path) config = load_yaml_config(yaml_path) From 89af07ab32367e635f8cdde4ac9129245237d0c0 Mon Sep 17 00:00:00 2001 From: denver Date: Tue, 11 Mar 2025 11:02:09 -0500 Subject: [PATCH 2/7] docs: update syspath to ensure complete autodoc --- .../docs/_build/doctrees/environment.pickle | Bin 223657 -> 1024152 bytes .../_build/doctrees/graphdoc.data.doctree | Bin 0 -> 709643 bytes .../doctrees/graphdoc.data.dspy_data.doctree | Bin 0 -> 284484 bytes .../graphdoc.data.mlflow_data.doctree | Bin 0 -> 104843 bytes .../docs/_build/doctrees/graphdoc.doctree | Bin 0 -> 1167557 bytes .../_build/doctrees/graphdoc.eval.doctree | Bin 0 -> 71131 bytes .../_build/doctrees/graphdoc.modules.doctree | Bin 0 -> 96939 bytes .../_build/doctrees/graphdoc.prompts.doctree | Bin 0 -> 465270 bytes .../_build/doctrees/graphdoc.train.doctree | Bin 0 -> 335370 bytes graphdoc/docs/_build/doctrees/index.doctree | Bin 9503 -> 10284 bytes graphdoc/docs/_build/doctrees/links.doctree | Bin 3986 -> 4459 bytes graphdoc/docs/_build/doctrees/modules.doctree | Bin 0 -> 2777 bytes .../doctrees/source/graphdoc.data.doctree | Bin 279143 -> 692783 bytes .../_build/doctrees/source/graphdoc.doctree | Bin 154542 -> 1034921 bytes .../doctrees/source/graphdoc.prompts.doctree | Bin 272381 -> 465284 bytes .../_build/html/_modules/graphdoc/config.html | 794 +++++ .../data/dspy_data/dspy_data_helper.html | 303 ++ .../dspy_data/generation_data_helper.html | 222 ++ .../data/dspy_data/quality_data_helper.html | 231 ++ .../html/_modules/graphdoc/data/helper.html | 53 +- .../html/_modules/graphdoc/data/local.html | 151 +- .../data/mlflow_data/mlflow_data_helper.html | 307 ++ .../html/_modules/graphdoc/data/parser.html | 151 +- .../html/_modules/graphdoc/data/schema.html | 74 +- .../graphdoc/eval/doc_generator_eval.html | 242 ++ .../_build/html/_modules/graphdoc/main.html | 693 ---- .../modules/doc_generator_module.html | 462 +++ .../html/_modules/graphdoc/prompts.html | 69 +- .../prompts/schema_doc_generation.html | 97 +- .../graphdoc/prompts/schema_doc_quality.html | 102 +- .../graphdoc/prompts/single_prompt.html | 107 +- .../_build/html/_modules/graphdoc/train.html | 191 + .../graphdoc/train/doc_generator_trainer.html | 321 ++ .../graphdoc/train/doc_quality_trainer.html | 320 ++ .../_modules/graphdoc/train/optimizers.html | 200 ++ .../graphdoc/train/single_prompt_trainer.html | 232 ++ graphdoc/docs/_build/html/_modules/index.html | 25 +- .../docs/_build/html/_modules/logging.html | 2430 +++++++++++++ .../_sources/graphdoc.data.dspy_data.rst.txt | 37 + .../graphdoc.data.mlflow_data.rst.txt | 21 + .../html/_sources/graphdoc.data.rst.txt | 54 + .../html/_sources/graphdoc.eval.rst.txt | 21 + .../html/_sources/graphdoc.modules.rst.txt | 21 + .../html/_sources/graphdoc.prompts.rst.txt | 37 + .../_build/html/_sources/graphdoc.rst.txt | 41 + .../html/_sources/graphdoc.train.rst.txt | 45 + .../docs/_build/html/_sources/index.rst.txt | 4 +- .../docs/_build/html/_sources/links.rst.txt | 3 +- .../docs/_build/html/_sources/modules.rst.txt | 7 + graphdoc/docs/_build/html/genindex.html | 1782 ++++++++-- .../_build/html/graphdoc.data.dspy_data.html | 913 +++++ graphdoc/docs/_build/html/graphdoc.data.html | 1983 +++++++++++ .../html/graphdoc.data.mlflow_data.html | 393 +++ graphdoc/docs/_build/html/graphdoc.eval.html | 200 ++ graphdoc/docs/_build/html/graphdoc.html | 3144 +++++++++++++++++ .../docs/_build/html/graphdoc.modules.html | 338 ++ .../docs/_build/html/graphdoc.prompts.html | 1090 ++++++ graphdoc/docs/_build/html/graphdoc.train.html | 712 ++++ graphdoc/docs/_build/html/index.html | 24 +- graphdoc/docs/_build/html/modules.html | 419 +++ graphdoc/docs/_build/html/objects.inv | Bin 1399 -> 3740 bytes graphdoc/docs/_build/html/py-modindex.html | 109 +- graphdoc/docs/_build/html/search.html | 7 +- graphdoc/docs/_build/html/searchindex.js | 2 +- .../_build/html/source/graphdoc.data.html | 1404 +++++++- .../docs/_build/html/source/graphdoc.html | 2778 +++++++++++++-- .../_build/html/source/graphdoc.prompts.html | 666 +++- graphdoc/docs/_build/html/source/modules.html | 255 +- graphdoc/docs/conf.py | 7 + graphdoc/docs/graphdoc.data.dspy_data.rst | 37 + graphdoc/docs/graphdoc.data.mlflow_data.rst | 21 + graphdoc/docs/graphdoc.data.rst | 54 + graphdoc/docs/graphdoc.eval.rst | 21 + graphdoc/docs/graphdoc.modules.rst | 21 + graphdoc/docs/graphdoc.prompts.rst | 37 + graphdoc/docs/graphdoc.rst | 41 + graphdoc/docs/graphdoc.train.rst | 45 + graphdoc/docs/index.rst | 2 - graphdoc/docs/modules.rst | 7 + 79 files changed, 22709 insertions(+), 1871 deletions(-) create mode 100644 graphdoc/docs/_build/doctrees/graphdoc.data.doctree create mode 100644 graphdoc/docs/_build/doctrees/graphdoc.data.dspy_data.doctree create mode 100644 graphdoc/docs/_build/doctrees/graphdoc.data.mlflow_data.doctree create mode 100644 graphdoc/docs/_build/doctrees/graphdoc.doctree create mode 100644 graphdoc/docs/_build/doctrees/graphdoc.eval.doctree create mode 100644 graphdoc/docs/_build/doctrees/graphdoc.modules.doctree create mode 100644 graphdoc/docs/_build/doctrees/graphdoc.prompts.doctree create mode 100644 graphdoc/docs/_build/doctrees/graphdoc.train.doctree create mode 100644 graphdoc/docs/_build/doctrees/modules.doctree create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/config.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/dspy_data_helper.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/generation_data_helper.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/quality_data_helper.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/mlflow_data/mlflow_data_helper.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/eval/doc_generator_eval.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/main.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/modules/doc_generator_module.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train/doc_generator_trainer.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train/doc_quality_trainer.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train/optimizers.html create mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train/single_prompt_trainer.html create mode 100644 graphdoc/docs/_build/html/_modules/logging.html create mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.data.dspy_data.rst.txt create mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.data.mlflow_data.rst.txt create mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.data.rst.txt create mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.eval.rst.txt create mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.modules.rst.txt create mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.prompts.rst.txt create mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.rst.txt create mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.train.rst.txt create mode 100644 graphdoc/docs/_build/html/_sources/modules.rst.txt create mode 100644 graphdoc/docs/_build/html/graphdoc.data.dspy_data.html create mode 100644 graphdoc/docs/_build/html/graphdoc.data.html create mode 100644 graphdoc/docs/_build/html/graphdoc.data.mlflow_data.html create mode 100644 graphdoc/docs/_build/html/graphdoc.eval.html create mode 100644 graphdoc/docs/_build/html/graphdoc.html create mode 100644 graphdoc/docs/_build/html/graphdoc.modules.html create mode 100644 graphdoc/docs/_build/html/graphdoc.prompts.html create mode 100644 graphdoc/docs/_build/html/graphdoc.train.html create mode 100644 graphdoc/docs/_build/html/modules.html create mode 100644 graphdoc/docs/graphdoc.data.dspy_data.rst create mode 100644 graphdoc/docs/graphdoc.data.mlflow_data.rst create mode 100644 graphdoc/docs/graphdoc.data.rst create mode 100644 graphdoc/docs/graphdoc.eval.rst create mode 100644 graphdoc/docs/graphdoc.modules.rst create mode 100644 graphdoc/docs/graphdoc.prompts.rst create mode 100644 graphdoc/docs/graphdoc.rst create mode 100644 graphdoc/docs/graphdoc.train.rst create mode 100644 graphdoc/docs/modules.rst diff --git a/graphdoc/docs/_build/doctrees/environment.pickle b/graphdoc/docs/_build/doctrees/environment.pickle index 3c117baeea970bf32aabd7042fc5f5afd6541e61..0fe70a00209a6ff84e5556f35d5fb43bca76f526 100644 GIT binary patch literal 1024152 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

?v;2FwZyQ*hd-Z#Pwq`vL2S4IU|QrA6gD3 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 h0nAo@|1|M7a!lcJ136Pfq%7Q(K5jzld7uV1* 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 ZO$!O+z=%bxMW6siYd1pHtaUTdhM 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


Fs;RWClu`^+sz@RHRvxfav} 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 literal 0 HcmV?d00001 diff --git a/graphdoc/docs/_build/doctrees/graphdoc.data.dspy_data.doctree b/graphdoc/docs/_build/doctrees/graphdoc.data.dspy_data.doctree new file mode 100644 index 0000000000000000000000000000000000000000..55deeb98f78cc3a4141fbe237c715235b6268bad GIT binary patch literal 284484 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 literal 0 HcmV?d00001 diff --git a/graphdoc/docs/_build/doctrees/graphdoc.data.mlflow_data.doctree b/graphdoc/docs/_build/doctrees/graphdoc.data.mlflow_data.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2940415c29c31260b3ef1f6a5309a1e5c8777ed8 GIT binary patch literal 104843 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
vEcHFQR` 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�wRciOWCo`jX6YEb(-&_)*-Rz~72efp;GB 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

NYaKc5e zHK~v6JtrVKZ$S{A7lneOdbwYQd|GKqLo9Y7O}w2v3IWb|C&+#* zBT6NMvvDv~GRzRWQUo!?z5{U0XgvNnm?ToZjc>-mPW6E`I*w)SIGA@%*m1BELb9tQ zPiG@0`8g3U8}xAXofE+gSQ0>4RJda4?DUg$q2nsG&?PwkJX(!-##H(p@N*xgk}!(I zX8ibrKul>ZeH@;6!!@y20u^yNDYUCb_(chQn12syE%=>=`&;?>EzS5$6@IbZrb=b< zMPj6!Pu1lA!?u!H+O z`Q$RRbL6xdh^2oPqn>W5_Zqv}oxR)4pop;aXk@4GceQd9E*QJO~@~bk#mHD-{zO3ve!J*OK#fyul0d7 zx}LT9y|cu&`H$mlenS+OaL@ebpa*LK-826YKvUF5$=df5bfK;NM;DpEB#Q0m8KO-I zl^X4gt-lipFc@1uI#1d9HFzqp_01JQS^9-e4cSe@&R3!zEXpP^T}YZ`j+HLK`>cGm zm=xLhArSQXcPfy{)IS`7Va#kCN{W>|Vsru+la18D1-J4qC`C!K?asqW;kMm^re))!BG+xmQ;34N8x!=j&`S^2jq_J5aRFP^DQz-4{o@yu*7Cuk(UxELuHKNcC{5PkDBYFIGAU4BE9>??X zFKHXeZHvJ3p%_}a76z6Wx@?P0dz+H{1!S5+@xBPgb-hr)TwyLV`s|l_-8r}b5iY^P zkBGi>>^J{i=dN^H8e892DN4{6?G)J;z9rfB;zEsh!H)0@3WQ`Ijt8$OGtt>2?{lf=&04D3H* z;Wi$)pA89kAsfD$2kvJ>0~D~cm&)ScK?A3U*LiJhdmVYf8>F)m}dvoy(;@(dFTP-S!EA6KbnrjV5el^ zz%M*-d>1}v zc0mq42}hR`PG(z)zv^}*Iix!`JKOH`Cc3-po!&F&+Py}1{x-CXKWp~S8BK$uSowd9 zvV2^5l_&iRGf>WFJD9VEJrOE}C?MN-;C>N6zzcc!dLFo61Q76nN&XIxgfXsxN=cuR ze@2c>A@N?ou!my)W*#_;d9mbw4-Y+HJO?THB~2Vz;g|fOv*vI3 z4*JO_fd@(c`&sy`ws*J8g< zpU<)j*;UgR=D;POPtAV`;1lBWIfBRAPdox%xDY&=2ksyCP|Q!~fwPzwF9hfD&;!PE zkPCsNi6c7v3qk0tc{<-gKlvo^poJi2;j;@tXczXdP2?;D)P?Yc;00_eRTct?f-{;1 zN3jdRIy3rQtoRS<;%WgfUupUO2DY0y^8a;EDMbGN84uhq2ncwg{QpZHxSx{=xR(DF z)c(Ka8#YEXQ07-w`#&$op^#Mn%wy~)6#*}l_W#BM_YZO?=Kqfe&SG9H?blq?@9I5B zX)kHw$Opf)51k_?@*VV(PXZ5;_K#)Zv(i4a3!B*{a-=dZMHCj~t9cwkN9NWv$oncDNrNW>*9)fADskdh$dN20_C0(*{KO{Ug{#PidEkCF z3B~+A9yp76@hb9F9(us|4ssQdG;!pPe-#OxWk2IP=qH~99<+-5j)l*zBB5OvdJ?$JQlv zq9Zmh&nUSNhAYOO>O@C;#$>LWo9ohqOGrle4kfCF>@})(qT?kFDU^5(R(UK7VVt-(!k@)tsjYV<3K+%Y1PZ2zl;V&uim=fB^ zc~?q@@~01I8piKLFz)FC`_Nh6&0}tvuQiW_D+rH=|2@m}-PV8@!0b)hCj@h}UMSL2 z^j4)TuRH%aw(};Yro`s<(}zqs&KNX%vD{_m9i4^NViMY< zUC7V&f{1dTHfd|LGn&o|fB=1HI)a$;K(?O&B&qED2NK-g8+$JwM^)JMw*g<$4wu9>#Y0wg!mq8F3vBtyp4fb`P$#5LWiYRC_Wawi}IhfWV)M+OoX4SPboK zHKwP!>DKLm!_~9uLF%3o_>TBC=D%L0VlU{{Fs%iRL)9{dsC5wd7 zkhblv#Y*AZc2AVsc7+y{&r`}r7Fb$$;e=9MpbfppLM2YdA;-{$UhFNm;A2tRPrbh= zTD+fnjhbv`f`Iu>_il5k-q8SU!b;%-q?atgC|Q?_E}#*6YA|BvnwIP{yH_6W+SoHY z-I{Fm;F80YoyJa?EAgNx+pBlrP$SsmlP;z4G5ai8^1?WRzcEVE_*i^W_97nqx=oNi zKm?4$mj@K3u}4Cd8vA_nAK8R9bE|o+CLLdic0(&+?yppfrvTN2xh4m{%gx*`!Y8qr zTRiRDcgd35;$7lzQ~Yg-zp?mxgZMj*f1wA>o5Vg=GL`y0xb5+3BUMxrOAM?qW4OYM zNds!kTvwucuh(hqnCmq*%qJ%m7EceP>ca>+%xvEP2wHEgd1rb(h~COYVphMvh zPY^$&oCKBZV5NV@+SxpCKcf)vLT}HLdEhMO!-=~m4O=w@dVd3=YsasJQ5uNxndGcr z(jILB{;oZ$7cMeC;}(>{Wgk8AihV%YdOb~OuSY)D3xgUEDKiQ{jxr;)#MSANKi@EY zB=IC@Bk^89P3kj$h)+VF5l;`FK6CcYPJ8#nRBN(V+YqACOitIkU46sM$;Dbt+CX)+ z=9=Zs!7pPe&>AXV;}Ld19|ALhD>W+t~oQ)--^-^2fLI>pH zoiK8rWJv(q#L2o?9ZiCgl@Yu3n+ngomF^UuPx=Y^ZW}Q=aOG^XJyqs{n>9u~Lpitu znADUP#gg`QP7PaS%vsp58O~sFR)?2D@mC(T1ULfzljtRPEFK**<;<*GdbROQx}l9X zTJL@jOGIApM&d}C#P{N(>vsP9f0_A0%DFy}cSuVD>6g*jI+;(yiTO&C{=SraUQOPg z6Y(ji#Q9~2f1CHhD)ezt);O4Bv$7{kN)0Wu+|CXP;&3tmNSd_YszTZa`XTK(eaUi{ ztb>3yob(Arlk-2Skn@-Qkn_ySYnw~TejyDfeL&D8Jm3-~D@#oFA*fVtvTHrr7vi(C zYrNvy4)n37F&j#PC(LJuax@`Ec|rsjjLy;70fzuq4fNH*=&w#=_7ilWPh%doyl{He z&kgKpG&6y{7r~qzh;0>b1JX%D>S^%g8d8QTq5^qG_`6{Q?v#!JD_cSW$!lLZci5i3 zr2{z@4Z2TMGHrxp5_&wI-q_h2-PGzeqZ{kfEm+s#RT`bER#|iVj$m#_2CYICJ7=U zA__bOrBy@`7jO_o5p^8F-4PeWeH3?oildI`42-*u^FOER)UD-Kom=<5*Xbnx;rleV z@2fiZ)H$clR;Q|f^8GX*?-|PZ3p+jM)W+eg%T|57DHSz1N5(5nxQ&GfN6R`b?8GkX zJPMw?N=&Oew|<^^msr65) zQID`(QKarE6U`P(O3WEoWZ=JkbX*;^It1qv;p%}y>fJ0TissH+J@yA2YViXi;(t^O z$VYtq#UXzFC^R;1_b5($SYX2=UW^mV4bL^q2ieHWgk1~(iUrm?J>en{KX;ufqvp!_-lMz08t#+N#MhyZpl9n^(Rtky)uHYwBn66hD#u!Dx_+M7e_#) z6>nu${rO%qxr^{ANvymef2aK8%g+H?$_(-I@JVEd#nbdw6nXk#+NY33UiyARG! z3yY&|t&7Ks6#MROxu)uvTyu$=IXgFTrim@Oe1dI#+PD3httaUy2;f;J6WfG^k!~0( zp8i$rm!>20hQt1atj*9VW)=Ge9=LxYi-2cWv7JMe-pm6xoTA7@?A+be++wH1I;`WI zbhZ|#WD|}}>efbbR34JM^rcYlUEghSpDl@;Fs8<3mzl_%2)6$v>oKqW= zd-CUF#COHEBI@(ev~T;Stw((-N_aGA`Kq8lrb8{DPyZV_#pu)7t8Guu=0RYgjeuwM zsaqAaCl9^2LhV9TP%LGZ^0@mg4FNZ7q`xZY7#_IaM#f@(3J;vc+{06+D(HDU^a!4I zyDCW1MVmTbdK_JAstVGoBY6_1mS?gSstOwA3F0UBrO*lHry(f*s-Tzh!2N%a2Gw zdo$KC{)+;j451!7iZTUzy#I1PpeFs72k=SwFXCzX{Fi6Q+(17Z_)*k{S)L#EY2Y3B zG5c74j0w{5WunhB`8H7BoCLN# zxbYY1@C*1kKZ8y&e$MZC;C@v{z`Ztcux_O4cRY*Zx|!mM3>-@yv%-awv6R|}9}7z< z!<_m3o`ZSdesdO!`B6M@7IQC;M@$~C;-OE2-y`W_8w*p`oCJYZFUe1FHh3m;A-|`e zCy1ZiYoSw&-?M=S?iUmSp6mC#ga^)Ip7ne1tES5Dj3K&r@(^&TJAO~l&Pm_r%`gJj z_c1M=@_%lHcFO-zA_V@=!=zhF`#%am2ma69fSUAw-iuGd{}E5q=l>i}mJ=_4Eb0KQ zh<1PwdIuhmU7BHFOjcWO^->2r%MZ%3Q|p~x{rOj5fjJ|JI6>kCL zJ<8KCg?@MEyXim+xI5p1PBHGz&w1c}4M)JUrqD@~|2Gdj!V)@VULB>$V@WdSY)&Wx znJxluFw^hX?9BuBo2yvNm+-&~GSl76a|91Pf}7pW=SaF}Lzt7#(HbN9CQ7DfdKU6) z&gKc?C-)i9DaNl^#{>5Z3IWgcYcA!1vzTZ78vLrM#XDn&?wvdUThHb1R@GJ)5`SlkjZB)AV^ZDzk%Uf#)wb zS-aQcGdtp5*3#?xUXNFR3}klHZ%_=TTwi>poth5=_08!}#HqPA?Yk9bcErd%O0$Gd z^M!Pr1$>&%L8lm>=HGbWe(grUbA6hh@xUXjU^ji5Sd#pa$C@Qcu1_=j98TZ^rxCNnF4_p@_%vE!B%ehdd!}b0pXQl7LHy)C0XoI_G^=^w zexHVb=lV2jdEhMOS)T^KYAW&07@~V8?*%S($EOKeF6q*2h7q_fjcKryM{_x}Qyz^H zA@FGKA&pVmqfr1l@Mx|F)TBpq13n3lMm$ZQN278zSZ!O>rHRkgAoOnMY9vg@sZl;| z`XhKX);sOi+yN{wXG9UV=Iv?UtuR+3$L>*_Qv%9g@+!& z({6h?5_N4BbG#g_Ka%^94W7wb$jdp5Cx~BA4uwuJUd~B8aKE4s@LVtF3?4X(dDhFp zubMi&GluBi$yA{$NhtFVtL##J@O0~*ohI5xY4jXaB@yO&pdryg9LP~ z0pm@l4#1m-BdX-0f7C8pQMiZE)9qq3Ofz1izWt?U5; z_W+_12RNt$1pHK->H`GqVA2qY;0Xd6Pf346``-W~?uzzLz6+3~p8p9vxq9B5p`_;9 z`v%p*q|*LMI6?cr2B6|>_G*9U41uFg86CN-KHd_if16*av_>nn%CjdfxdhJss+?XM zs8>i_(<1~*_0_We3qn)b7+dL>r93c3b%MZFR2pc=6KVw@{9~H%Q*~?k zF&?Q{i1Av7y8#)B6KzvgQ&%Y?z7uUzR*Kf&shX??RJnt>@ptJWH}Ofh$l_`GT;!us zt3@AUnfk}e@+-Coa0kxuV$(kLYDB>^MwBz|@0|3LvR*6wTThra(7mkV`|7lB`*mAS ztyVhbj=Wwyw&YeErpN1@mD1ef+R7g_o!^tvs!M*Y{6Jan^-e&Cvoor8IH8kYQtVA? zOttsAmrvX$gRZM)S;lpJ1>oNu*Y#@vNxH7zg(uf_O(&T0TkR9P(ixjNtxC4QcX}n! zIL2u`nRiQ20MnvjJ3|K+x z5Q-L(+2?UKC*T>+gif5sGCX6XPNakMThX+up7DW&Mn??YA3Mb}w2cNze|Vs zQhX8)v3Tm(A&x>{T{jy*U&cwZ#Sw14bLlsw*l$j;7f+?IfAT1t6VjHKzLa#i^dZg_ zC#zSg^7Of(5qYnhbLkGGxw#WZB@D-X7f3>?DMfUX%CgcKgpHS~7wr)fmns}dIZVs~E|$<^6E2Nv zopc1;OgB0)G6-j0iucQ8IAC8+bEI>|dy&)KiSJsEzaE%u#t!-Cy5H*baNGm`Iv0M1 zo8HP-rTzV{O~29J8ZPHmQX`|0SERzQw>Mx^38uiWn)V+^N9l_vs*M{PH(3`)5Rn>J zgIA*|l)N9oNYrjgQKR#H73MN_v|nmOK9PgS9gRD^h`cF?h+e0-cuP$Z;~@3fV)98o z=#$^gw{TXcY@>cXLoF7xJ-_Io{JP9g ze$mNL=8(Q~2VlQn&`$r>$nJQ)t$`eU;-~xnc7p6KhE8@7&i)2vS7v*S_`))X?*pAm z3(Rho{cutD{kov-yw&I*RR;aTIze9?dnxRii@N*Eg0}HSqkKjgl%LfJ%5%sry9nFw zL9SIhjqE@fWcxcob~np+a8dUC3gTh+(dfUV4Eh@jqaSu@QFYoU;(Kl0RNvH`dYCTyu{jFgl^yp6`GcV3G&s z>BGL0k794>r8rwvKjy%-?L#$r5WvWwX71SL6`r^TvkLb^BOuL302ZfxZ9bc!bn-dq zs&9I2lOrv1x6W0t8*Aeulh-AWz$X*Iv+v=P;N$lZS1~^1+vANzTbp|eG(tW?G2Mdp z%;n}$<_vom80>Y0#pd!4k(ZLo?m2Tm#-EHJtP?hWUkt&9V5X!PHvba3c8ASIbuBSF z`8OORcDPIqk7LaDO>10nf$! zR35lL%|O5xNE&JB!1tzd3C}wx5ursRS%NSGJ9O`4S9sZhk(XBCPB7+e&jgTW|6=%r zTBD+HzAdMMs-GQz7N}zImP>^tsF-<(aHxVRs4r0QP$E9a#a@_g3f>qx#;@1NW;w0-me-KF$O8t3Cpb zst;(Sg#+K0Qhi!7lD8lXSM^;3FT11qvcfMl-}m7QuI3Y>uN2=8pn+0+3P(_U*CM)| zC_V*1O{fxz@7I8XRD6%)lTdu(Y5El3QRhGV+|vrHzNPuDpMcwe^4r7m{Ro<){$}gf z5Sq|mTFPfX-Hw|(Q*l^@VZ3kSY8g~Rq{%)FQr{A$TaZa^5W@@v7%?kK;k@JrSAW%z=t`h@5!#rF_2 zP>N6C2#W7AM7I+UPyy&b@%;dBkc#hz_#_mcc$z-NcjOCCJGZdri^%;U*bY>mo%)c# z9Njl7eGAG@{-Fi@_rz_*tRmX)iL~$5l>3vT^{T(aqt)Ns7ufUOCQBgqHw!w&sJ{g~ zaKHK^;JNDWARf41{Sk0fe?TKG9r(VK`qQG3?1(U2_4hc4PIuIwX97t5cQSm})qhg@ zl>$5kS||mmumlD8TM}z;A$m;iPXSPK$~GENxxe!OHK_p4$0wlx#nbdDz>~!N+oJL( zXYagBMA1#R=?)=o2R)^(^cOnNh|jkoVhvK(QuS3}jTUZZ7#eBG9rd{(x^<0%T}}85 zr90 z1Lb#bg-*7$@*mXwejd2rS`qMEYxQv+xZhe4a7~__(>YCRd)Wh_oWh8&^4~3f%z}W= z?MB0DhBj1L$WoEXv;gICusC0qtjML-PkF5U)FR-yCqexe58Th^Sj_*<17|V!FcY-5 zp)Ge^V{1!C_myBK!tackw#{d!pwrYq*Q|iOMaW2aXxWl4uU<;5gG-jl+l!oi0KKLK zwalNcOQOn&1&)WMHR`e5W=h1?gt9C<5^x1om^=TT%a6$~#RNQe{;lDG`{!RQ=IeRj zEauty=bks);-MQ7ZI*>K{-%qC%ACZ;X;ev<+?l0Lr}0mfsovj9r_*Hp7`w&_LX_kN zxer<6Dcux3z+@2gLsufI)%VS38kYZEe0t26lw8eFz6Qh)*BJClOqUr;dXw%@5y66I2?aYD`)5!<)=LlVbnb z6npVh3j3~XGJCo-80U-AWAnC{?axG92*C;cifk|&)_82Goilbo*wyW2KLGX?3j%-U z^l-cdzm~_(6bJ&pn|`DHs;ywfS4xZwxw^Kw>`&<+LC4Cc2atBe8+E|94mm$&<_=JC|jb-?(7L}9(071{U z$))fHJiNf9$kj=;&i0GKr~Q>vH?2T3wtN2 zNOQ(Xh7Nxj58R({Cg8cL^4IXd{iz574i1n_EiE?K!n8Z#*-AlPLZ{+rnMsBbhG3EI zom>DfJ8%qy3m`U~w?mUf`U~%c@3ec2fWK``5LKG;K4_-A2!$`Gs23pWoz&(j0BY82 z3Pf*9`#9hrv!|cHCy_lBPo?sYLJf7gE$z6|FF5nesZpQ?t3!c(|wn{Z%^B0t)o!&?!cN{*ednSD*wu zSAou6Yil~2zX8=xz)^u()Y4*uElMd+Ei=hu2*XvN55vpuD^OD^qyk+6ba51@*+?nS zgP@sGpbB45pkJfmd&97p+CBw9O}i2b^k_g$D$rx_Nhnb9G<^#68RxG$`OMQwX;7}L zPdJPw=nhmUEtYyfIy!V$`-9R8wO{J#a29aDoDTLZ)4p3pIh=9Y{|PJB@XpaWIs?)>P?Ew!8KT}{e{Ilsd+Ba=2sR+f@NvT?la_G7G zCutV-3$56GmJZ3M>Uoo>$&vgN!3f=ET)ft!OQGE&X!oZA<rp) zJm*EWo_D0kZ=48tu5sF%2ktjc1YED@irQn5r%$u{X?dno_q>$WeQ`ziUSjcv0uX{;ZBREj@@Y+ z6Eix(RW&M%Rcqud`r*RZAEwyk3?4+_eJE zKY#$3!MW`V@V5gznf7hJaavt^oA8G0WF7l`nYPl?XIf}yWcE6qY}`Shnrz7|1mn8? z|6rq7T#np;;XoIl5Xke4>$BI1E@mJx&+em^Mcvn$A`4lH1VW2_pi@j}v5W`qcV-B9 zZfJ2F58Us}5O5t@>=7iY$Kk=Y#`^MecnnH8Ji8dmhuxt!bcz*roP`N23^`8A@Mf)& zf*ETK3C$LK(7k3qrfiS^!_fMR>r78@qokoPHuV+ zG5+=lBBBSE$o*-43Qlo|kjw!j?IJ-$iMGsXlrj;)Z@|)b5D}JH3WWf&AM-ehPRzh=b!?VW(oHu5_#;IOl0 zPB~HR#fnUcdyh)mnr!zd`Q&;wq5s#N`l?jdQdxDSVSUzBM0?27!-I-a6oD0r&rx< zUY~%!m;wfE_6-j}qv7@o+l^E(7bbreXoSrMHl=$Pkqz8h0XF@-9Nf=E)BJlj=bT$_ zO^lDELX-ZjM|Ef+;*!Kvu~WRnJQd0N?1@V*!FzL0uMN~Ir^>KZ33IrCM)br&h|;x} z$3v$~O4zW42KjMJg~-qIpRT=BGvA+taJ3m_E|lK(ccK%Y=B}R@8E6fSj`*&Qtixbr z>SaAXiPVdD>Nt6!M_o1WHvvX^q05P(P&8T zqa+f|_R>?EW1DdjKD$0VRv!=D!|4&He&e0#H`*WSdVXjSxGYkHhow*b4Z-nVI64Tduw zieLz%(aeM}w?V&%5N0=p5$UMEtJnp+SFwRdGy+ zvM_r?+Lg772YOeXdl~2)v`k zmL}}ATle-m{*l5FCe=r_L0gaGS$r0_zKmOUy-R}X*!bv%u@)@QhzT$@ULPD9X!WXp z&yj!Asvb^}rkWy6{ix>+oF69v@y%A(TQ#3Ud6Yh4RkE_k>8d-)E{5_y!&SU)no7wf2*zDu zJUB{lC0hFM)%mIy3APkMK)Z1ceVD=Gv$ zH(a`v2ksA-2)JG&oMTc>yJ~3(V*0x#+57kp8~L8dwU7NcUBxaGqDN)cCn~oW7Ypwa zOmb$te`QKiMdw;n8b#$v%$2Fjd|-_+XIG}YqHnKEogJfP3oBy}J9kc9B4b{Er`rr& zA{ffsjM9AlreHw6?*9*dRQ~xvz>S%Gh0+}}t}saUCmy(eX2)W_(?wj66R=tYJiC0o zTgq}_ru97Di~o!v(~H>KqmbLXjA(DYBdvJ09WWC+?$`VCyWV7@>j zoyixh0--CDFA$jld8v9I@LZ-0PKKvU!X`=J6RP%ck5jGOQ!n`I>4~7qhJ&6xm8OC> zr;u0?-HFc{x~x7@smbV!EDuF-%OQ%x)f4q=Dz)@`8p3r3M2r7(qQ&0`TTj8k%CPlx z>d&PRuqUlDC^ErSwGs%p_O>L`N&{2kc@c6?lz7(gNvt!7r&8+-B0e&(DILijTi;aM zFg9E-9M2uZ#&ZNU7}d%7!G%XJbR<~eIW#gh(Q5WpFg98XIfmtFUF52f&8p@Rqoc9$ zp$$VV5ZY!h_3b@Pj#YY^_V%fU4tHvly2uZBmRC+((yDKQkZo!47-_Ehj$xWEcjP+X zQeN%!aC|1erNqyG54@nAjnj%_Fj*c0dk&eY7AH=-Ed56Nfo(AzkWL3T>pmy_MaFFD z-&)tbCmnn7$W7BNxeLL#k=tT^Hc9tMhinV7&2iGn`D8|JvYqn2cA`J^m_EghDG<3m z0G(nYw}*M)e*cbu=SFTn;DP(+8v)mm+dQqk3<75TzggJM&=0@izh2z!lOHJS)BP&L z5r0kRj2i0{`#D0uvqW)r*3IXE7pFp<4s*CYU-4jNCsqA??{v72Ud*x3^$jR`j8;&xy2xOwn7lS-?7-ilDbd*u%o$!>2GTW(#qC(B5`tdgc zPUU(4*_&j*yaA_EXL~{#ae@(q>aE)NW-Pyu&V(CslIXetXGbvfG`I&y5nj4B9akN1 zZu_1p@at|G_>`C9ezp*Wskrh}*eSla@<=H6<+7gf6|SGlva z%%c9(((>IxW1%YCZ$T#!lg+GD4Qq?9P04fBb~1aWQ7|msIYP{J9v^o=h0P8M@hpG~ z0`Mz=R=BCD_S-YZ$b8o~jSUYC47Db&)0GzXritXY065tnKJx0M0{@?&wn+}aCvzb{ zQpFl%^3W{6jFz~}okO!Pwn-I6+87^^-SIN554MFvNMCfE&%Miha}VgmnJSZ}$qZ;L zY+?jW_kp&hXxg5+yrSGxeAKeMqRarJh>E_RBC73St}OG-6QI+S5cMC*5;a*gTMMeW zS?l>_#z!=TeP7EA_TXDfJ$S14J#F?0sXNVhw^!JqO-uYYPE~0Inbj4vl5%zBFZd)@ zSHx2Xt1Gldu|}0h7uvnhY_Fu$Za@87bcN*&d+q?Vf&bdhNuU0BOMRw;C6`lq$S{Bv zE8~(2&e?QZ$KuMK1CFiC&7&=JdN>o%pGU*b1Qu6{W3Zw;2H|<9QXzCg`~379?ayt) ziz|8pxQi_FotdZ%ROY?50Vk(4DZc2U>6xrTFz%wuOxnQ{JoQ**2r=L11vYj0z6;rL zoBo+;`^>Yl>@crAW%<4r0;Zh5ql7$>2F6dv>B#pj=Cy1%@27{5$@}#HF*?lqT>~Iw z-meW$*}Pw7vZ(xDg&&WR2UN2G#Cliw2F5KhdBAhXx2%m+Xd?Uk>&nKVR-@8_?X#5S zY1Uh~sQ}+lH+j-!Gp$DHK47gtCTW1mp>a%ykvLDor$yV3`UMWZPII`_M*egIHboQZ z-^ zAnYHabWt#;X0cLZd?yO#lydiXswRH{RNG82hri2Ut}>{CIq@`o!Q9EPfo%g^09GID zPfMeV26XMi*^)WW7dnXL?scrP2YNLfiQ00MzUXvA(Q;*S73A=OuLvrkj!!t{PTbh# zJxIrcG+D{g+yHQu)5Edi{s0g^!_7qHnNs+5O!|%X7q-Rl%OhE8tNSe~b<*C`+e+pM zy}xM#`uvnW#X~Vo+vEZS8(+->_s>QGu50i1O{o~5Xx6## z?!38`$HwsRP0xY}m8W#)%^M{Hb7}m3epG%M6Y$)fHy`JL`=uim^DpzjSJ5qGHIOe@|ym-F5&RbMBWv0-if_p2`FF%O3&P+9|EU3&c6;?^>Zh zo&T`GzDPwhWjVV;0Mkt5!?Co8B=T+TDoU?kU}sfz(MMJ}I7J}mcbfqMe%V6Eb9_WL zgh08Ulo<7sVmcC|2j+(?;pC_uMkYCWIB16slcSddO=WWQYIw>fN4+krN{}9uKQ1Fl zs{B;Yut$4A1}Y9oUc+OtPm*{GaMo$^ZRI#z1UO07p8c9kYdrv|vz zVAn@aAR}42T?I?P?N<>Iro7bh_CnOAoZVZo6PvSp6c$=kyhmpbCO^--vp1CiuWeDY|QuDNVDiu;` zZ6*(m>NWgDw_Df?NL9zeKoGHZY+aj70 zvypOzn9VByTIEx&r+>lDtolK$@0MCaMJN7FRjHwwRX)_NtV1msZw*p@cQA=jlJSWb2(!*jxu$sd<$<|N5STQfm~P) zN^TDBPfibK`uTHk_!;3IWlzH>jzP~QHqHew2v1d&vY{2j$J0@6n-xQjv}RWe=Vw~T zmBP$>ZDsdo>CRuCtm&C7MlkLwVWEOeFEBf`xb(^bGt=Gh2OAgWITKh@;RKcnrXn}Z zAG0QPNF=6ZlaIs2F8WnuJO{{A~kSJ?~!}J?~Sua~rKTb>vdm4v@qVB0$;XX+#iuZ6O*{r1J{w z6d&mvvMOqJsN7*}b1f)uDl`a+PbQ%gr=(G)C_cgQM#d*siKbnxM*VQ1(GiP2h@IkD zv>&IwBx9U3Fj#E9lV;DCq6c8w?;?5J98}D>7A;6N!~1!7nEc;YHwpQ7A7(r>gsxh>YkYB9_PxIN~NGPX5eX@hWDN`&IYubP0#sR+gmYp3h* z$F=O30tKiqfKDL3xg}mhJaB)B7Xi;rFKy(3`_oGVT$gy2J^b-H{_956Y&r)_aNpVC zkFU&d#DDnXZ9Lk3ju7yyC*_o0y_W}GoF*NWUS&z*Km74iJk~5pa)tC^9=Kmf!}PX~ z=J^2+Jc8a+bNFMH^8Ujg|C7g`qr79d{AG)BvO7%;s*sHn_oSZ(xNx2{wzbO^y&B!l zEgqsS4@wVz)TYLDhdimp9>ZhOR%p*5+eL944r6?gn&)6qC1Gp|@*`O`t2iI<&7&-O z{FGJnlXW_>iu(pV;c(@n#y*o!+zlkG!-V4TKuVcVTm?_rgre!Ts9fU0;3$kVqH;+f zc{86TWlS1zWm@MLaVVq~W|db|nUhYz=(+Kn=(&LsCnDoT+l505j60piUN-Ay-po$b zALc7fTCnG!o|u~U3vXG@(9*(@{`D&ZQ1PM#7jd~L0eIu4UvfykZ?`DzDLSjVFr zQ_0pV1zO>zra35*rAn>`z-BHAl}|PoC8=T!GI%=VJIaiY$j(w#SEnqHwINz;KUn6Q z?}tvD@iJ+e+y;$f%iul)ZA;NKd^+Tp$_y}ysNvHgzhCB?--S+7Lew9YC2H_=$S2E; zk7(+g4vB9q_24O9^t6dM9n$R;_IOjPw=fybVFEU#d@$g)x%*-O}6mMqsrK0ArZ^E?Ds^y46s8T|{7dmmXz+eE5s>=*0P*r$Vq0tc|&cIIb zjF>NC5Y2|r+D)dNX2L);nq`%CJM;B?4c;$U$IC7W#ET-D(u_pv77_?vCD00u@*w?- zErAsp6)*TZRi#m6Di6_U$`zV7!l2{|jd+^A6`EB#09NPN6<(=1EOMnreV~ICo7KSx zPXVVAL@~#5<9zh}oufatjtayNfP7d6G&lS9QKyG94gJ|S{7hhNrZ@&)Dvv>U$~tQ^ z?@hnaesJ4fn^E$bU8C6}J0(^2!1t533O`PXQ+&-v6E^t~f^pYu3Y8*yfo*|w;a^w+ zm`dF=i_AjB6sHUS0QholkrIAN7y8LM9qGaYa@BA+ZKy|)NgKW!=+R-?uyQFF)^|hE zW>STxY}(K_gH-x(N$#kOG@_a%kd3;F#4aX{c%G_8bk3C2?jU6hOB^dXC9t)6IUERT z+9b!q7|HlF^jfrCX=z~f3Zg;T#A8G(cv>McQwVZ0c8U){m`IP(p-c-c5zjA#D!KmW zK_^b>8L=RaD$@0Trf8ZUj2DOnn}tS4j2OdC@r=ksS%Umd+7IgZGVL@IULB35Y4nOD zMYCTwV?orj*$nA5@HUUjBoHr;XiBjlQn!#mgdIy1Gl~V(r1pn(rrUs>?v^_Ol+yQi zswQs)RJm$B{9VR^AIB$AttXzQFBW{p*!bv%u~va?XdCLS#^~U($@Yqz5YUF(K>*mw z*k~KH8UCf^_2wS5bo&_`!X}rj`DVt6cekihCfd8Zlu{0Q_6I#t{|)#Ywx9e?p>L#p z+yA<4#yvKhRMc~KO433Bh9*byGo*}&R_p-d>=@=2mw~Km_MXxAWXdmJC}ye@QzM>*j(67Km=r90%K8Sz}Kre)+ zYyg_I5Gwr42GzFCG=fj1^dKVnDruUS;PWt5!y?U>aUj=V__!nRJ`4BLMsI!ej4*=6 z?Z?Ccg9eBK-jFdrU@_}b*ix036rwbRE1R%We7Lf&6r4&GR>|p%A^ApbV02E#+DZPV zw7vRM3&%}`P^OBMHgxh-q~L4QyK-v`tzwP#j^SngI~_oLnuF?5-YJj@H#OCLkjN zpi*R~=AJ)DGu<#FvQrw>->I7158vk^JN#WncE83a5!s2S>5J@+YmLKZWVo27@Y>$N zY+$Frb`a40vt!2<$ebNm!gH^+V6%3s*;^YQAKlnLDF5s|RsOpiHeL_6>f`;j@k^Sa zja&fctkIEr{ZvC!K4@Zspon!n= zVCk?p28+vM5LQIWb){`xJEY%ee|%dEq1D7tp|j3L%+){1EnWJBR^Uga!}mp`eD*<; zE;$mxxQl~Lez)Y5%vIr4RE<->>G~~mrh}1R2OlSeKt1$+D0P84xmD^_pvrRzL!|CA=+nm|vr@2k&{G8-AYSHExM@hBb;ceZt` znc(~uE+J4>;@GMcBtz&QIffuJqM_b3TB=K(@yNAb`B}uNhKEMO_i))zP=-lgB z{3RZE1ihzb>sXfZ{;gv_;_>f{^1tSRvy?YfoIj=aXC8QGn9mup{hTPTB`7mSsd}~X&6Uyhl=`fUj^mYEYE^_H zT6K7BWxU>+7$1QaIL)C~k684#uZL--C(&+!FKM&&RbIf2DT@*->P8oB2U&bz{zEi! zZ*@Smi{$}7D@0-{4|o(ivE>1eg7#1~e6g2rHRN(ZrFy{#i11oF-d&y%;C1RYqoN}3 zFG`RfSKd=L>HqgagrcH^zd$E2ehb<&D^yY+z2p%b6rp zn6Nu^;_9$X6IiG)VQ&Cz7ABx>%oZj{x>&Ur!GkiEml+=s-f;}954L3nLpho#ZU&1^ zEc4al3s5zwLgUz@GFC#{?o##qGUJP(s>p#5QJs9tV3}{$pi``*7NY6;vNR1JKXOHx z0Y(uO6Df+Qc2eavWxjd+R1x*YvP2CYKXPZ8@p<%1m}~cy|AHHi*$QTN*XL3!%>JO& z`RB@D^J(ZbC6nay0JxmuSu`8WlB_$JvCdGeKPWRknj_9}GWgaqqn<)GPn)CR#FOGa zgXWM6G8{{#Ug^T*kHQn+Z8Kf*_&d=w_ln0`jJ1_YXU6lix{_Ju6TFHL;;S z0+mvg^BeVM9bVKSW`Nt}CPWm`#2e^(8lxL48|$#|bat0!lIwTg>J5Am>FSfbL(@b3{37tHS){YJ=e!k9CL{#%sztHII=YZtVQ&&j} z^ukR|cdL*QTMU5n=O>Z@B8k~EwNoB+w~j6|KKTKjx~#i(YMHOD62qDTs-6yjyGzv< zl^I_QRT+0{xXd?)ri!K`Woa5V+}D&DU=&fq?$#U1eDn2FMbtNyC2G*!x~I(eeEKD1 z|L-sV0f?imLU#OYp8fZ<8FB6Z6q`eBJ6vRvePKM<<@KEWF-6taa5vsw* zY)@nj{*R>V(v3TIf9Ehatmcsbl$d$~JF$r=>yF+1SE;0Dg-v?qw$m)0J#Nb+k2Y;} zp9!7vSWL{o5q6mw1t1-)zK)B=udK&K%We7I z!BK*zsIt}?(GR}0RF;#Wg7)^s=325=J6*$)ReEgpr;CiyjPTqs^7@FTz~O>i;W6PP zrzwE)RA>tD2+*D&m2vlP?=hE65tX~;>X=%i@pr09SDrcf4|9NWPtY|mD7hy{JaxP$ zh#xbdfBS{DG}@i2GVwcmV7S(7PS#BlBm+AFy01f=2l46kDfZ&26!znY%p$o`*H~jO z9yIoU>14HW04Rbb@IND^-JS#S>-Z3?>BEVAjb?krv+5)D@fya$xX$(L`tTTBtymR9 zfY7#LZCio^Dh{+>^!j=`o0tTeuq>CNy2(bh+IXpY(O%$#2djM;06Uw6j$C`TfR)nO7PS|+yuAa+ONPA_6_3L%!1trUl9Ypn*HUBg4N?O>#*awm=6hPlaSK8v2Qm8k5QnTSykaw*hFOnJwoR2vK)Non; zMmVJkFLhbkr*`ez$piC@+|*7@5N9c;^K48FyyjvfLlN653)aX1qO@Rh$2PB!D$){J zwBz?fBcS^%fWGmlP;S56%r5J__3Q&hA{m1Q#Nu~BJ(%+!BK zE9pboDPa0ZnpoSJl!W;Ga#+!*(C+L?dX!gXs96~Vqc8&etu_04F1qNV9%TN-pi29j z0}Z&GyRQO10&M(7mD&585xC3ybiB&Dx~vD>2O$adL0{9e#l7FEEdWk+>cLT{7@Dom zVXLJa+b^1Oq`?lXnJT&%!#vp;rmetT=_O5#w29OT$0Pj3XUwv+Lg~ojL=vX#Q3+Zn zXp0I$1PWuIlAeV3bX&Rm`t;HloPa|~cxr!{fa4+#ZqCsO;*^8D0}gzl%TYRXk)tjW zyX+*p7-Dg$BNqARk2Rehjv)Di7yJw-NKWu_N&1cU!`nshqNUA^8|I{PC|$7hZ*6#9 zol?Uews6sbreyLe1mm6>FkRQczKtDIU|0XG(8;cD_wVX|9}nDLs!hOigZKM+;C}fh z;Ch2$*=u0G!hhXN*6a*!^5EzOICEyQqn(B5J-5NDmvN5_@T3#GF!^GJBmVsckMd~y zIYPkG2uPN;g1vMq-G0jhFHREypWA{_j3oY@g)>_)9fJ{7gC$9>knYX{_X}y5-gXh( zVjg$|z02<`EJk^mwF8N@#iRS=WJOu^~PU<h>p-&4OypBjQ<-2I! zQHbWWF8(&`6u&OMrS60M=R#wl`pf&Elc)X?Uz;9hH>Y z^9kt088wrp$)nKNmkSrka{C;d;?2wgATFl915QflXHEK6Atb5%=f%*8 zlYfKsIG!$(zCZ=s>k5sISnyix6wd;?3`?kPN5ez>XgAX2e|I#3Wfisa>3r?-PQfu= z_mUjk9?_JhAQH8Z9Pm1T%D|M%sIu*Rr@Q48SCN9hQ&n0)rVI?Nq%5TR9t=vBfr+P5 zg;Zj}pwmLCQz?K__feKy_Bb+r*+YG)gXNFsazUPg4Dhub}^l&mcxL?5p?=T1VJfN-2!TlpVg>rD2>7#OShs2D{$jPZ$0vVlOlXi;9 z$(<9pQ`PotOI)bheZX3=)S@R?8n`Ulo)tCl{6Zp0*(_c}V0Bp`s*_jW#7^;EeJFCG z)J*7SEgG*Xgd{oC*FYyu4H|(Jj)!v;jF@&zG|i7`3j|ho6dE0|;2qd0o&|QyR4}mm zSTusB=_`^|WCAPHv)TOON8oK9b4d>Fi)c!L6%w_O9Plv`1y*Vn`(q^2b3i$xz)Gom zf2V5l1wfU%a|eHyfz@yDN!+<3o~ALdf@=2qFn5`%&pKx6$zlR4=Sv*~R?qX{)a$^f zz-q(r`r*-y@<;QA)zvuev|e@#6q4<<(e}~v3(4j=J#4Q&aE2*H-n(Hxwm!f zbQpBifwnT}+5k_%pv%RU54xPzM$o0E4mjZd3&>-lDkkW=QUX5)7S*;HyqV)kvrSSZ=o8ZuqRAFU6Hphu1Qy3gxUx?}y znY;=+#YZNGtcsd1Dl-||T#L?I3JrpShFhQ$r_NEzC}_a(a$XQNr3KMzMANPYkN;9= zbi|^MV5fK%?Z+v!Q28R?NweqS=mD6PzEE(PSxZGfGQVk;_oupoUus-o8oEug3V`+jo0a{!;%Yl zD4FsUr(%ykikEqZSKf_HP5o&%j?HZ!f| zf%|tW5b)eJ?jatye~p`fcfOhFCH&Wm?=8r`CXL%burb3C|7NBed9?i;A>i54BBx69 zHXe9!nsl_8DN7RnW~LAFShFO_71B@f!2LoRrnkMB>0ust1ihzbGgFrG{>@DPkH?>* zyyM*YFV&Kh-Dzr2g{+>qtnxI#g>zc5t-YDatI_R*-yxY@(%RIxeugLC*JHRM+6v9y zY`YAO17M8Li~yKi-@&4c)7Ww4N3v|HZwBC-M_F{PDb?pE>-44i_Rn!Q!=)8^B$+JV zQ$X4}%<>%yWR+RIqu?o&k}CkP znIJ;dluZyxs#t>z?smGl%=n1xELDYX>EG@2t}@?zJ9OgAoJrHE^+U%3R+sW+} z_Kj0J2xWCSOu(j;q($A$<(aT4CHJ2zn&v0>BZ~6&xZI{!Sh3;v$;`~hPVr`DU)t>y z_Ewk{+9EC~geqmpE6|CX1qK6fR9$93fzrHxC^R}^#7WpGo)Pm!w4&J%T2RTf(@eM^ z8qKmwyPf%Zz6O7uU>z^JBoJpsG^H7d)GZ_syh@-NJ>^0AS3m;GCMtsPcdAOG$ZUQ> zqbZk7UJZkiHG1M{`j$;NTD@E;!2zA*V@O1I)GDw^iWClHLgqEcvglo!|*NalT?C4i|&O;a>|$-M6XzMLzf z<^?75{A8WJWZu$9r58@>=@Dg;dba>=I!x;A@Dea=?}izY%!Q{=QqMQJRB~@wb8^*|cCpq;_y2!c%~7Aa;rm5ccg(q;_l}RLL(TLP=RGf!_O(|5~Uo_1R zl?y~_=M@?qG2$HT6wioE3>4T$m1(CZY9ks=(>xYQS@Mw@YT<1DauD9;ahU|77SWU< zHKcAKfryIK)TH(YU8aM90(ZBpPgiEZ->I5h2B>lcZuq;5)ZU6uVmFm|n!ZTwB)EYV zZmg}hO2%i0M#N|86CFflANQJX1vsa)t#SpNRso09!zi1*wej)MjpC*n__G%e9EX3G z)5W~~aHB8W2!a)VYvC08<&`VpoGmDd?}hyBIskLl=tv!ow#R?OAsFJOwaj8RmEo%s zfaso~peo+y~Qdw7YTNyr=VM`*}mavqW)f@}9v1 zFHVz=YVxuq@z>;?$z#ouBv)Kt$OHFVgfP8v$y3Wr?On(UA8WcQEj z+tA5Y?Ebqv{+$Qzmq-GhtHplD1NTcL0oO)%?~Kt!pPwk26rXf{X*N1OwZ$0s*NSxK`A}Kr1-ji9_-{AF}E4yv!#RtmHmK_0|7)!s9N87KW z2zXYDc$HmRs+=GDO3%h^RKD~z`tcl_kl#-U!kCr+8n?Zt z0{11?#6`(s8G<5RbyN>rn%tTgAAuG){VSvERibI(o!Dc#lNw+23KwH`pkQh#bf-ByTDwEyVM z&C0{EZo#ImPMBH zlMe%6v(_3lXLbc&(#0BPa0k*uWyVK@XX(oB>-s^NuRa2uxWWXJs>v6iaqJ$XA3@vh zQuV*fj4y_&B3nYU$jQv?_%d7U!{Ubuo+Nb#=rkoXoeh9X(KNiTYhjrIMiCWLE{dpj z`ek{UZ!ViEqV|?0YH(lIsb$9J(Jx`HJ+J&1+`!G!Xzkt8B>=VFKrGDupw;=sWw7ao zPE#^T1_5xXNfPAec4bHv%Fhi@%2>e;8~X>)WbpFwlT1sRUIQa=?g>jhjn4q?;B zWcAn0qG_(Xbc?adQmLLj)&i%gHte`fekV!xtUwXc#D@9^6f0HEZ`7N0cu|MK3MfdL z7(i&v%KFjqp2q0L%Emer5f2Yj^^!Q%^Dy+WAf_2n0SZ5BX?KtP_p}*t?f(>;Lv1@;WTHHW+jF#B#&h7I{zN(%H%0g(R2Yxh9h*j zgf{I`cn5UilrB=3n1LhgGBXNnTlq|((GgQViJjt^vWHkXGq1Ll>m*e-*un}_XO-+b z(fF0MWAw>Xtv-Ki=Qzq1F1Yt80l-6TOWup^**IO05rPe-KKi>Ff9k6(yt zLayUA*4T>&js0=I`T?K_mcajvly-X##INH+u=>9a8Z_J0Ge-w%!>;YHSR06zO|}qUkPQb~wK>p$i!b^IhsNsz ztBRLDBO+~3vA-?>t*(uU4NjNTTLfk0G7)Aw$5kA;_QWNv`leQ2WvSpCB5>kh zy*YpvarHOHY6JDYO4_8dbmdBA9l-gMlB!kab3rUEZJS%NbFS0FQAqxh9sCTZkeuC0 zr>Ea&U*GlJN>YNxHunvV4uEvwMJuE0ZQ1XYZ5$C*JB?nU`Ek-Ls=Ns*bKL085WnfDrOLuVx@5XL@D{W?hNC6z23FDnTgP4noj9jo&5jR%IKD!( zHHf-WE9Elwz@=$dz%6KZ3Pw}(U1cbGdnXhA* zose*i7Rv5=3ND4G_(KcYQ}+SQpKq1n&({j`$M)$>-x(E*UDxV0!b#b(!2SB+DzJ&+ zdh;;lNF0U>qK66hW3oMayuN;Da5C8lLkiy1r!mSD_^pC|WeWTnJ0*9{fS3ipE35l< zxSIaFb~3q3{R9DL(N^b91D%kgTx@_Om8Fcy3S^J02AzqIQqru1G8Hm4VTb7G3&@-3gl1 zgLW0>-d=2_`Crfu{Hp0bScvXaI&cwm^3-VJYriTcahW|+OHf{o=4J;NKY?ZeWKbQK zK_^zl?hHC~a1`%Toh($N`4RwZCU=EuJpeu`RI5~`3lm9~xT1mA14NTpQR9;zaI^Z> z2iwf@_B+db^LFSIOVi}F(AZ~|gx#{Ydnb25+fpb zV8>@+XCVO;a`F$2);~C)c(i8Cgby!FP7-K^n_59j5nFIF0M54sk}8(D3l`9xl~HPh-s| z7jTriIw*%v#nshn%Ak66mHI7zgfgw_Ra0{aiW1oLZ%vE$72+u=sJjF$z_8fcwD5J8 z6x3%NP+_fubSDM%Nr6_lX=w%ZIRKompd?k|6x8?1jE~4(UP1k;%vb+?s;K(w(o_v8 zs2SJT0vHwrLu!bsju(}YWsidLv^fS9RPnj1=c5ZVN;ln^!=mE4X+kSmwKO4jk3zkL zEMRCgYOTtK+E~-n$B+x5!CNj>kL^-Pjg?&t_3E%avY04!=KD!gaz!CwAkDT6ItkY+ z<1*tfmU3Ir?q3CCpGtD*!MI?sjY zsq#!^B~^B{bn(+^>qmzN>*M{S>-*(Xv%fW}jv&sSyX;g{RNzL*#^@kaM)j!#UoYmA z-O8w5?ki5&lpb39pSGS-mz)tSJ_}|{xW23XV~21oxGGT#GouBnuTG)TEzHzl3Dj6^ zyjky;D>?w?;?dDzD7iX+e4@U*g6XJ!&|FwwMW^!OtL0c-<~vL}=XhSBjj9b@db1zT zaJkyVH_{XTrH)zxB z#7@*_+DD%4A7fbDI(n;+vud2grDPhHT}k$0s(hY(CKO*(pzK08-k83VPY^`vHE&w)US7Gh zUPm8Ir1%Dh)~_ELfCcx>l~(PNv`nLW0JSzb90+PgdbZ2uuii)|kP5OGWd-&3o<-Hg zs)on+Tv%cIfC(7dxOJ{T zjh873pOIIQ;q%G}s1!ac@l2%v!Z-V1vA@{q8jPuWE2}5q{JTc&GC1|3f}2v1)f58v zR{GF$At4aIK+JVMyjqK-UDwkG?ptkx8r$+YJbZLwo6U49#&Ece*mj!$BTpm-{^$4=y9l(xh)#~Ql^ zE_$C`A8EHz`K7cTn9VO~(BY)gTerTXl8JU+Ch7A5&rHLpQnq-r*eeLvhsg{dDl2aH z;PfVpo{|v`rG`Ae=-K%(c6Rcqp^v0}+grO#IQgKLO*4n3Lu2G7cC!$opLHf@uKHQ= zRKL)y{Cdic0vVOBKqpX1#ob|Z~B9O=Ra6H)D`f#bG^BE_Ai15j$QPhf-eVc+cPtmFcV;36krV@+sC8G z&@an~+b%{!C2`g}P00hVwO!$;Q7nc|F+z7Z58N+w1Uy&hR`S68LPx;0(Di`N2iwLC zGUf{3IsAvWu<)HJd67%5K^|*Axd^zSUHsQrjq||$jE=?pDjqnCd6t=O>F#TJ=*79Y zC;A!A!36BZRh(*(G;;KXU$sclcA6UKv#N#5hU2b{YC}(%-K_Xa=@;j%)-d<+1ojW+ z{m>~!!+e?t?iV})o;zi}$^-Wc9s$?nnuY6*l1d(F6hCTWJ<5O5V5eEf#N=@0*UMVA z9||@^*@Rf4{)HbQN7ShMUFN=uGidDnF0n&cz=qLWhVCl+_`ZWH{r$-|l5R+J4Rua1T*X z;tZm^hKF8)DB=U%BZ~iqyLa$tvqZ@i*AMW({o)#=xD%p%f(Krl;2ni%Ss|1sAVFwp z9klrk9_!BN{SzKIOYdA4{5L%C&M^Ng51hr^GdG=k?RI`OXR^)kIOOzXFGI|~*N$_$ zrMNhj((kFp+J+_kApIniz@z-0BUt#X-xE88XR@CN_&qcP+wV#5YlZpe-fOp-{Yn|X zN21_x(@;R!$cS%ipZ}q=sL2;FEj6`89>XkkV&;my2e+dum$@m_07SXntweNH3Mkh_!+uI$hVXDT~B0AkQ#WykA*da|*(;6e-v!*;|JQ?~I-W>7x6hJ}(W_tOVwhYxm(hiNu!LTupo2T~3(bm$3JsA;Grj#G(u`wEj!5I^0u8J8R9qG&|0-~Favz4(z@}8AfgHK4S{?0?x5z^?4kV+t_v$BR% zjUQdL(Sy;JS))Nf&AdWiMO{TA?{mT5WOhRN`u|5TXWv7ZV0!ZW*_o02jG+1t(zRIs zp~N_Ef>8a3vO=cR+w(QQ{$uy+RQ<bVb2YidOojKG-^E8*0zf!11~ zFt4;3Bfs5yo;XP2Y;la8I(7M$bV2=TVGLE8lxw1A>7gL#rroq>DPIS&H0|5oW+cHW z2sxz-?4$&%-qh2LqK=bO+7>A4SP7kClG*3*!2LNN0-l>4ypRX(PgoFeoy-^ix&aU6|Z}F;C}HU;F>@?g1(m2@rW1x zrb+c#{(~jN3*nbt0QjWfL6msOL6;P-si+zHcb<}dq5G*AaDJiM?|9&Tp(EhALO1hz z&PoO{m;_u4U5T2Zz4#B85I%4@N(7f$43hV7mR0tf03F+(^Dlwl#G~z>5(GR;6vw@K8xP#z`j&97vLx{@fZxYs&5|Tn zzkQkq?$;7Qdhcq6dWPfiRsJi*34cItpjp~7WZ9x}XZAYzPx&!%Y~eKsW>pi|j0lM% zzxtTsC84Lsrx3zxLmKnU+Ry=@2s>OGnt6j-8|r~4&)N`|F;I&{nf=Y-M1-+gq|`WY z=OFUaV0q%bna!hBdoST}Vzo$q0q)0^$F0lUbkqjl(*3pfzXy;ioF6fxwR8z!QL==r z77TYj^`Gh$qeBYeNh?N6uv3aIn40_*BV*Y>EgBVEIFP}ry<%i-GN45x>z!uE355nq z>qf^xC;z$;{$lbM)|QScu^M8iZ5Lu#Z>18mFgaQv=!A8KhBp?CkZE~2aauI0L_noQ zBPFM)IJk>O?e80`@2i9sd~`l7clAvjdMmfvsTCuY*1+!a**U0_R&Z212&Q}b#_O$# z@sYlYwQ(2LFqP`)8^=W*I(X9WBg|O2dU2B`SGBNDDJc z;hU0W&x!nnnX3S0xiRx1=j22S@Qp zWlAGk>&bL0JDK?PlQ*V)+xKo0D`}RLiKyH-Yi)H`+?Zy9!f_+XqvTDX=Vb4|IwsscYcnhwq7KYiDb;6eo8fcAjj_iCvh{**wK8)DMQ^ z^);S0hBp;TRAkG6cQI5^>EQSwK~pn@?N8(Uj30nMI40m(@;GUnCwSly)am9bS(YUJ zG|ud{?VdZn3QLmQG|rwpaDN&nNbgV@=K%gI#R)%!X`C!uQs3Cx?r;o0rq0-M3J;uR zOYZ8y^LXH$VcyRJXED!CV7I`10}nkykh1!%v+WL2Tx@6FOo=$P+I~wh#fdqn8HRJV z@zg_kNqujeKWJa6h~f7QGP|e;k;&1$4peN1Il7yH$FhF=E%4;Y(M39_DqRN|uo9y; zGIz?PgKKazS&*2_UH6XGqij(30BUFIUC|RN&D1Q~Mm=?4-`i=l-b^IiN9sw&K4iRW zo3}3#Q_NSItp8GotdxrU2zFvGWVFr|e5DxiLl7k>|#(6E`;%I-SqCX#gWq z{^&XxY}%JhZ>fu79qGaZmpp!^u+83zcYb%rKSQP7Sk@j3gG8Osi7aF~v zIv^eI%dj{&L1xVa1QsSg5$J`Rn$CBjn-m`dz~)6Ns3DWgO^T8_)?kA-J^i)J_=x;0 zb=mu~c6p7>s4%Gvs?LQ@TnuMYHTffqORPE9H;oMs4Ggs=uhVw`+irZa8vyPuRhN_* zUldhwHY<6ZCH~N|dQ_RO9zIo6J*G5OL)X)sQD%I;$q@R$n(`mO-O%POg7{fW6?r!7 zc-mYz#oAg6i~I4g3!7U0g~@|3DsBp5Q`*>r)+{eQPHQyxiKhAHch0$DjUzo|H2qtT z>e@maB*Xg(>=bW!_rs*i(CA2Qd^4`g;C2C*MT4cB_7NB7}Eqa${F5Ie=Q;~=>Xr!(c&y4G@$aaX$s9E*j!=tOTLh4!Ur zl*`&1_04>f^LfEMR4r=_4Dqd{TC$^Z^MXHdx`gd*=|Ra)mKhT`OgNa!vY0z)HC$ zEuK19lXg=|jU}MGoiK~gKjr22jIqaDmG`O77ANgb)=e16z>a_}Ua>2&A4;(oPo=OQ zzYwh!EikW9Yp?QV;pk(om#rRNKRmior|K$Ic~QX7h&+6KaCAT%Vhy*ZEw&fR-JZ@G zxIhn1C`eJB^PL9{~F=#Y4L+S3626ztsPFr-!4s{V8w!45tND-uMX^ zD5#<<({Hpt(e-t5qCZ}~cbM_q->46d)yI3`CK?bs;2U040S>P%cSeU^<5_iH?FjUw zTpVq@BIVvZ8=mqg-Pf8!x2Lr5EdW;=H#TmvX1l7yzuKZ>@-_q`SMYVI#O_&q<$ZJ6 zA2dSu)6_s+DQqmpc|Zz`u7Wx=qeQ~4MMeWXHPl(Dp>PAu zgY$VF__vFl1D#@Y(ZxJ)zibll+*vio1NX}&0ng~7^dP!we%yXF|6zmoUD8EKNKCJk ze8?r$8+nZVq$1$C3g`|VxSz?fnBT_(XEFCEAi-uW{GaBbM{u%C1qRPeN0YDZ6)=CDbLg2PQiqKerCCW_3r z3#xO_E~E|g)L6t4Bw!2og-$Vc;ZPp9Uu6*RT$w+f2kw`70^X5bID`MN!TYJU3(t~# z$R$-jkFlRr1U%O+Y~X?WnH-DxOL*Wc=J|HvIv#oiC%b7EBuyMm;;erT-Yz`Mex;0EkSI9ZG$bl(7x=bz@xC_$lawvVJf?rc z=-|X~y_sG*c$k}4^W@kj+q1{vD%iov2ATb3+1g_N@m1!=x7IS2OKitjS>hI5P zUR>=Ywdo#TSd>|6rNDaKhP?`=vpS>DZ7ga(xJ{?`jREGJIC)2qI9uIvQ{xsTL+!bm zgHo~R7djF+4F%CyY;#mggIf?-mG<3^M8P?7^8Xe!;8wVW$%|4}`xdeS0pl9z6caEe zJaB(3LBMmPpiMk*zcWn0GXbNqR+No1oC2Wh`41aTp=o40Skw@f*2s6K-q7Q~z-uKh za>?~J9&10j2zYML_&y%EpV6_H-_HYQG0!s7Jq+%PJoMt+EWDb5eiYALCzS99ky5ms zrUv?EgmOL%8Yb}8w4(7i&jhha6hACF@G)(oW?hdi?pz<5&UL7+cI#5# z%6_Fx21}05;ie%~#q5Jxd+^l9P0h;2M_7Uc9Mum(rx-`|b3Aar+92S$GXD)8xL@W8 zct`f(XZ(i^-fs!}@Ds_4Typ)9$J$RW0-kFhX5Y-(YCof6G2fF1&SIW#9}eK5M{u*- z_CeCc(I|fV5Ia{+;0Ng^p#&afAD+X)XYE7m5MIE3B48hA2=OZ%b@nS|?1MzX;ie%~ zS^L1ZwO2TFN+~%HopE_Q(H36ec*71mz+wXYry8h17qbP$Rs?qvo*g)`cEA%u`oCa;|K{wcE}m5q;M!^+2r(96%3h!uM1(m?l%I-o#as=xBS*wcq6%4WW( zx{EK8>iIvSm|L2RMd<%_<`Xa3w9ZKy2@j%G;+QAsv|~;gA5(hmd6$0>ZO{ z9W;CFYG)C-*Y|;{98S7*j`qJ93zB>Jx+#nA|55AUgMfpkI=97-Kf1M&_HBQ2+g`Kw zQ&4UV(>t-|JFJj2)@gk2@70EpMbH2ge|n5pnky%ylr69>cpP+!Nw++Q2kwu;33zV) z-~~Kze+WsyHKD|spKx!ok-4)TIK+R@2%)w_nx!syU{9hzc1#Z1*1e`9V@7;O`M?@O z!?t$Br{`vJBvNQvBEB@xJ2*Nwj)3`Igv^Pop*u|61cDx*)K?X~cis-$Bp4v3-NVXw@sf)g7 zyEO*DuDdk5J_BC9DhiT?W!*eK@Y96|Px0y}uv7fGIY(;SQ>nu4ZgE&3`v2%`q@gN$ zQ+Opho^m7;2~|5bHBFd`!8K&V)%~|ZW1>j(8_-EaqV_?5_}cVabY-aIg?08_TicTb z@>xsxe>i}638&-zej$(wH#JR7q2v7?2f*f8C8&_(@qSq433E*Bp-pLG9XOUDi6?sZ zv{{_PaZM_>bJ%vJ%3xvg)f`e`Q;OG7eDlH>ir4QKP4n|Z=>cIRnCahoR0ly`(v+ky zR}od3X$N4Z_?h+;q%j>6CZvSSayd>a!HYNd*Tyet z770X`=LDh_;0_|tXJs503vv}DmcnTqLSH3&g#nn2b=i<~Hw%u6b)2_a&Ns4h&Ih5* zv~T;NZ952cXy!(rOC!1AMy2~_`ssu6kb9!N8Kus5IwDC^O7_hySk_HeVqTg;a-~_g;~s+T~&_0t%EB*`j-rE z{I_*{ogaXoHv~LO9w)T_F%LX~I`%QY()DA`FJVi4vn27~*6}2dHA|9QaoypKth3@5 z*I0Vbfd(FBfJ zpMT}EhAyj*K=x(OIuRJWrHKvokydlL@cO;knabJYgLQGD+E9~1XmAx_85NGh6Dt_- z7Y5?}u+FbmGXR`tjUx>vwi0Z#UvMEmH;q}8MvRNLKQ|6!YAq4MTjtQsyiv0d#VMK{ z!%p$h>`KQ$tW<6HN92**TS(I>;msjsd`pVgGw-!*y}HmyDVuZ+bn;}A@U@u(;Im26 ziz5tOm+m$PRM;4x$WuP)R)JQyspd$OGNm9j1nFX(l_~$a?BeFXl zpY=g5NB3ZvZ+;Fsad{AvrpbNK*tg>v>l-F*FEaTev@JzbaY!VKB`=Ht+5N{ISIS)wMPs~qOM$)3~U*=0;bqN#J01HQG?gD11cg5u4Gk@DMWp;Lq}q#csu0Dozm>`{GthddLh&(t9lA_ z;soCyIF6za!Fi5TR#kZr{sgJHaEz!>R#myO{!Ue?_L!_HszsSq9fd*3tg3jLzO3pg zLFc$ghV>b-8CKT=4`y52-`!5KkJ%CDo#SwJILdN?xz$W6)}fVbQ8AcJC+{2Nxyns4 zE%d~{j-B{?n)#J!-|d;v&M6H`B;ApTf-^pDQTli)s-WJU(!4-c`K{0?Cae5@9=Jbk zM8I>?bRXw|`_ps;TxXT_sJ0Ql(!OJa8N?e|Aj{ zI&1;W?Ak2?tg&x?4=JCf^2n@aP-ckQD1G6))jHxyo{;`Q{8l1n?0@rbgx}#7+mCc8 zXD<(;+^$(vA^rZ=Pe^myAG z&hF|VWwN_3gCTa9-8~mLC$qaRgePBim$B|D)4M!=oJQ7HF$hBNt7+oLWPMkh2@B)C zq;BQn&9Zn3_hymGNwc#Bdug3?ar8t>Bg93?%SrZNX#LdRn|#cV_M-P#T~-KBiusz@ zDMc5iaPA(f=V-4)ZLLBN#b2-{w^UI^J#}Q@7{c0kO zKxsdd+P0kJZwvZ5pe&OG-@qraEl50dkSriI*2%V@W2KnLwY4HSfa3dF{{n!{7>t^HC<)qk*3#Ye#Zp7w2jc{@pU2*$Z}R`Vo56~!e< zb$ILh*{q)0Iqj~PVZ70tnDJ&?-8=K!@3{UCuplP3ozDaJ#~B1XH_lkZ1NX-n1iVz7 zaTxzW!zgWu*!EDsCNj>DgSOSEnW!~m+dm7|I#OT^En7LF=VS6GoSM@cXDnj1SU9xM zqsW97{|`phVQ5hUX35ZE2%dbQg{>)7G_gNB8Y6&Eln0CZGh{;KPM!)EK!D~+V}|^O zTBW==dY+_y-lFYJl>;M2hz{Oxr<=7F*A^l;#XGOSPVsA8ho|Pm-l79S;&*a|)p24P z!vfI)nej#o&|3 zm1vruT1dC!kXWXF>rwp&fHDOs%v3~`CfP5rQ~V_JEEmTtB>%M#YP692CqWv16tr@W zqbNjhp5qi)EA{AK6E^)5Bq+s)%DDMERg=#Hs@(P*{9VR|2i*!!A~qCH9mIwdTCFL$ zJ?9zY6C?d14ODNzSrJ7d!xcG^p$)l%*zoj>A7X>9;-5qEnq;WDTPey=*TSxj<>^+P zRU@0#7LQvLrP}jsFe*}UU+Yx#8j%58NLv67W*t;??{IjhM>x z0;Xyy^h&{l0_+Owa5G#y(+AcVS~gtNvoJXWDI~+iON~wJ?FCrG9@HL=0|#r+v#`Cf z6XSi|ro8+>*$q2)2^uwwRayTYrcd)|`^BGtXNlr2%=5qvmTd`X%#y^vhv}z0)+|YK zHNt=K!2KE_Om8r7h7A6l2OdH1?2ft~r~-yl7JKna-4jOtZl*on!Wr5INBLaMkt8tN zAwc%4f-QU+XnHnGHrL{qS^MfNbV_e<$C1e$9Svg8VeaTi;DpQ_^}&-bcjUTDDtmN5 zp4YZ)5=J3zQ&XxKxNZp;GoGLb)OL13sISWE}hDnL8$888KUXs_dBUKowZgj|t} zP}`x82h4dUQDVw-N-roxate3P$4>F#?n>!x+6kqhL6uKJ5u)>6#Bq~`h^-$V-QeB7 zqdZm$o7JCMl!gn9i*id1=;X;Q;cGJ(;dkrkD!NS7+{+z6j+^GlH|3VD6i9`ens&TU zZs`>O*vu`V+R5gYQkqz~r3^_txg}4VUd$~O;JoIi3oLAWQq{09sppUmn^NurMLII~ z@jTJAE6Jt@0F)_NVJ;)8H2eMqJH^kwryK$S~B;qNm2^m}{~=_m0ted(v8;ppzV zJY1zn>SPbTlrk&bf+_tkY<`DC?CfuBH#dL33S^8X(3qW8QD&$RX|yS<@DfmG4;Gh3 z@$ItN)87dmM2VUlbP-YG+uECZv=@~uLJCc9(OvfDA;XglrcL!2GHKJaI8IK%^m21W_Qe&{3;h?(s+_>0L;a43(##7yy_Xc=)~ zh82sE6MK00ktd;@B+0#?+|xqN73bAkV)+PlAsje5G*D~7t!EX`ibLb0 zBX|aB1+?Q(?c!lbY^y0(u$P{WetrjlF!|P(tkgQOoKwV7KYv z+Y-l{j)T*_+xlfjehLbO-_SSPo#-;gx-=9Pzr<3PW~;?Fvh{k4>>{_h1&x~PtkhFO z%@wD^4K%m^A>~+s^^y~zQ_OnFSv+umYL9^DruJUM1NW!)2)HI zD7BXe9@vvJaATevv~2*)f&t~?d;l!XGyXsJz68v!qDq*Ml@4oy0Stl1nips~tRig^ z4Iv=11Va$Uh|Np)OI}|({hEHSNg~UrD2hA>)K)=cTtOE1WmIr?6nAvg5fpcE8F2x( zaa86%r|Q(L<<>p7?!Db~!~A}q;r4yEPMtdE)Ty&ol>lqxKoUaflVMHIgv_bWQ-w1A zKnvxoc}n}^&Ho}X&&-LunFsC{N&=oKl<($&`-PH#Ya-?l%1`kfKE^`%F~Nf%p_GHp zBb5BNcDz|HMA3;zp{cdhlh-(UmzUJYvmQ;tSg*k7N*e2r00?QU{|`L*jCH@spzQVJ zHIBZ~8PRCP5l}Y=BXiPB_Nr~OAAO!M{qmdb`5S6gwDX%dYsl21acuH&f03h)edFYb z{I6zM@*>9xjK}Yji|!PU-y0jT6@@=CoIrK?FF0aZ8`yNMm~5O`e_azXKgUnC!9Z2DtwASD*aQ_ zzRFc9d^!L&ONCM4B};{4npma636gk9g+1SNV|ZS1D^oT!H(gNat6!{m7Dq>B5Dq{6 znGAAQ#ivnj;aBFGE&TD@&COAvpyiyYv`1_G7sDQ)3iz{da+tRUJ|X-HSgP>HA82y@ zGYrQR*mU7R8j$c`CTIXDEc=dBd~L!iEd1jRARZ|a{#Oa4(myqYKYAW~9D4u4>)_jL z;g4xz34ekl9^vk~o-)8p@)mp9bx(Ordp9$zb5@Y{|7<=(l2>a3J12Rh})K@fadEhyaYpah| zssicC;Bdvtr7aup>}|d1k>5L!M}Z2M%P~6J?J#P!afN!(IZi^T;#DktTWce@6%)z| zaH}%D>aO4=mX*sZXE%rIm6hT@6iJL8+06)*AG>kIA?^D1c5h{=zIxmYy zhx;k5Rje(+-+<8rkA9S@wPwGoZKTq(^Nmm7lp4<2|q%;&$wwl;!n zhg2zL@1j!iMrteC^g={a;x7>kr7PiJlMw+AT zzSh>-X#0|}W*Z6|uEFu$V~)?^rXf+vUc;2#T9`tKlXabM?d*uQcMS_KDteH~65NeD z26Zyam6f_2N;GQArA<4o4lIdI0z6Yw92zCpO^jwjyCNx$#+>Mu8Q=|KzcRmZE$~VF zdG&a7oB9bC`pcnGM%lVR(b>=f-OrF3`Tb6=wd$>2D9k0(q4%QZrl{WEzKE=yMV-0y zi6Q#eI})R9qRxU8NYUN9>nRnz0RfN!F8ec}ztMqi>peKi6(GsDDHuFQNrT6-$WapS zf{%a}HvlY7x@?Y`=2&zqH0{hCt#6jL204SiaMiZj=2j+ThG@8f(`fc(c^^MNblx6VFljDuQ#BWcx|C z+Y8hw8eZV*SSkzOPg($e$_fBq`}M=PZRfhF38F9rlKFo#u64m)Gj`hPvK4Z&N%mbb z)H75Y-ZEC(Qtzp?+C8T<`^9baXTuhZrK=$RwRvo4sM6|h)VJ1_LJ*8=yLNbN>jv=Q zPN{Dm93I5l(iln|e#!ymIklm&R4|v~k6E~^6YEh5Hf=0%Rp?wnYgVRd_~)3}zW7p# zUG)ewvI87`yKvT9rEXNS!cjwhpMZd8V!nU}?zadD_@e(WG;$(1LZcN35-L4#Z>}It z2v%#4=wXB*Caku9qwm7YB1WJzBG3-(FbY(fhev~G#No`2Pg7FKOLPo;sq99DE-dN~ z(CEE(V`_;r8VHp4Pym$VYXV@hgz_G{#0!rv_pusKlbM^7@kwNE#8aW%hghJ><~~mB z1C`l-ao;fL(LS^VlLz-m)eR{LD8uisY^}E&%>h_e5A!aoF1XZ1wKG073lZ9F5b~$> zD2Z;?R-vsaEvraDIHW~T#a*p%ed(?sc|)^3ctoDo~+Lt*~D;2 zo(H06s)g*d&w$gySp)oP8oS|4aYyG|5ce@{1x4&ux*<-z?3t7$Y1Sow&^mcXJWStO z%^P)^MA3ExBXdDI9dp)%N+ekyI%Cr%!J}x?Z#u^?3x5-DF@Yfd&||)i9dk-t>{@7K z+b8}LD{kh2`|T3~o@t-l$piNbJ^?p~6O&9w7HFpp5KH{1iS=>5OCywIy7x@BWxrGf z#U7f1p1+ZT5lgr9_!mbX6})k@fWHu262o3PJ(foUV`ncDV2yJ3$1X?sW1i~%v3+0S zYlPMPBKkWXxL-sGc&3Q{g9q*xQ39?-v}}%WkGI)tiX$8Or8YZ9$O-6tK*v@d{ygC! zJlcNF5b*3g;W0e)0z^TBqVTLu62+e@T+5@)5+zey&*g#p#Wj`UPOh-V1J6(J%v@nU zA@t`9$9SyE(fcYMI7@FsvHA0bui}B1!~9J=a29jV+;sAV@8Y2ch)R)sVYaw9D%oL87fy?w0z{K>vsLh<<7P=$RBaSf0XWx*HMWK+CljcA9$A^*V4AZv ztg;3JOk(2!+AH!(2N|fZpl2AL;E?^Hc8g98mQf?cw*j%1DZVw-9tJR}Tcw_x3(qe} z89pByEr|$Skp9f0%T7f?s*}qM+TxuDBEDDY6|~3CdZC;cKJJA;SZ%8vlcH$TZvl-s ztiihS&0NEyogEiLBe2FjyA<#jD-^Y;vq~JxCDJ-VTJnxai;N3AUBSj8vp8x9T+`hb z{FHVWAlJA67k)}R3^oKnr5y%JP-A&WoMd+Enz2^9xwS%N9N|-MyEFY!b?yVq$)WnAKS}0v5aOmnC z#b2yb%^ol4YQeeLkxE_~sGNW%FP?CwSePXolxI-7)#SJ>tJx=?4vdT8xR5=V`@pgX$N+^QU4<~xl57`~0CM4uK z%w_p6rd2+>lYnFZ4P49(=bFpG;kI-QtCJe||C%G$*@6H6bXqtw!S6s|H=O7z1CI84 zd@1gubL(`-5M?u4Y`=yD?S^>GJUFD0Obs#VdiW8&mb7ihvp|Ak=ObU}|a4!8uC zDYFxo514U_z3Mws<@b62A*3q%1nWI`;Qp8d0nc=(m+-*-^MQctV5oJ_k9n+F zl4NRv-|@ixnjoFtAfiTX$Uk`C1?Y|Nxh*tYNIXeze+Ff*TUmpGqc=bI(S@ftqkrO0 zcARlpum_SJdDNIEB9EVg6}DvL@fe`Jj69wMPdf4#V&|$@3;*H_E;z0p58Ee5!0E6vT z7r3xP1EY0)>)~X9*EY;*Uf7K(8i%!(Jgz(|VCX6uqc>U$TV{-Sr8+q3%f`D-@J$oX z$wf>G*Pe@wCj4Zpr;8w76=Ss!9ym&b*-oRqB{IGTp=eu0 z3XMc8*FL2OUt57(XJxmKs4^U&WC7IG4k*XybL5-O>A6avmHw&e8|6Br>g52~Jf{bh zoIIooH$=e<6Z_I*s#xdrB#7dPfP20<8Uw7kIIoq13od4nZN#Vz_3a3n55uKb%3YgxvB_>5Qp?0H~A!!i9i~bRq(j z0Xj!~n!R$(T`#gMtvHCG{?@eG_Z_y7rV9-APixkbuo1gvSvwz>t`>(AVJc{JM`hb! zyCGH`F>PCDFwwMCXa;|;hp{ZzFhrJRadbE|N<^BRC4rcOBc5R9%$Lj%*)KJ6>zy9m zskuf+Oj?7D!kJVw(6BKWx1t({&XCF0Ip+%|fgYZ*(eOg?EvJUzd!c(Zxi4{Aq|b@M zLlQma7}3t%m7GJeUGbMa21CLga|~(5h0KU}GPxkJ`xDF4#ms4CZD<^Vrjt7Uff6EG;5ofS_dva^)Eyg=ok@?PDsd2nc` zufBDpy~9k;wt~~K-QIL;3e?mbZ0Dxwkn&5#I%{v(&na+`0w5qOJY3(_*WVl(+d2#v zfWh`*ksgK<0GFPkbLQgs0r^pH<+3YahcUJi+deZIiEpS49D6Ij?vt0$ZfZ7%prZ|= zW3W?A^i4m2$sTYL;RJ6=yU)>f*}3T-IV~Ke;*W!3H=I&&a?{_6`g-M1Cq*Ka z)sp(VUQ+)Qk3E0tS<@~0BZ6^L&!5juJwF~MhM;EE*sxT1i`@L%Y>UScW`AOGE;O=t zx%l@V?Z*T6hsOzcW;$Xi58OWu3Aj#78WABUas;-Xn-V{X@6vDwOk?k{-6D5_;7txT zrduy&srXC*){wa4i_8;}TTT8wT_{RVB!AEf;zFJcewqCzIRIm8iC<<%8dUuFroCYlcaBt_P7Pp;)V%rCJ5e$lkr%LEUCWHXeax9|hxC>pfWn`yK}EBeaaR)> zWq12yHFEd09&C#pY>GZWpizi=*!2$9BJisR0-mWJ zp3DRHOELl1>Y+=A0Evi6E#Y`L-F(OSl|(5IrwZ5rFEYvX3?6Ggxd^!7!un4~IGYFV zXLKm$&*Oo!m?xPD5fYW4lTu^#_ zu0}UepZhfko|ml8{WdU9*5`g7o^*X~Y6d_RLW_nAFkRgvepE~{SK#M(g3eH=m;|}Q<$Vz< zRqFjge9A+mViF~gG2h*@8ZKx<0SSgX?G!(f%1{`Fnvgn19o~^>2zGfFo#TN}g_cnz z019YA^(0`L&4j5>AnhnhZ{_?39Q_OXBcNUveiE8l=+O!m5TF)@Uri<2C8gB`BMJ?u z3+;i)b0h>L+pr@1q;K_Y5=Jjzhg@eFVB@@)i;Be2Vyr@LJ?m1T+Z6t4j z$bUk(-dZe=ZQ!7*`((*jFz?&wOmOwqurtTABQKXaEgY@jcfPS3ZWVW`x1zX@&f`iN zom#HLg2awiyiVZPT0dVKQz?I)m!@#^3IyZUd7VE=b3uxd2g4^p%cl&XHd! zQmH>RE#AV?A|>#9Gc*bb{Jw_=?vDo&@XSc&$9drX`9#1qfp$%h&)oq9-hlm)Cf>a~ z3Wi}GSeA8=y)H@SSqil9&hjq{o;ga#A5N4+vP}rnS2bf*Hwv(ZTt0RunE!#NzJF}L zllU5;Y=1S@jCb1poM6a3hhBgvqJyHT-y~7|=Wm?Pqs-_(MEw37k+8L>{}$aTKm_9 z$v$SSJ5PW&y^=#CpQz**08hJQCCAT!x3ZGsxA3GZIRYbos;)!bgc%f7G^#vQfDckK zTPW5LQsr@yAZ?{NhSe2AmD;7X!68wSA+nII3MMZqwTf|@Gu@;f7fh6ZpqKkU2TzPR z!Mr5ejN_E|NBn`>Pj>A=*Sk48&NNF9PpUnbi;ZG*!H&qRJvc)K)6_X*N$O+LS4aru zqUHC!6*E9cS4zk*t6hwsLaS6!rvB9YI55{ZsUTr7H1ZcD;4e-=!fH&2mm8Qy*M*<1 z&tmae9PKO6bz)_P3dT>VJ^?w%Wj63rs!x~|0F~+!l+ebq;npW~zJl=>eMN1NnQg?386O93~+HN@@a&s_?G%)-t$=0vq>M&Kri~iNrk> z-EhOna6L9do>+s@LU@)VCpblb$<)E{9Ymfxc2Mep0DX{(NvK{3`4t?aYK&;zoP?K+{v?ZxhxN;nR#F*LZTr*Ej)UmF5Dq}>1&AoAgT1B0XW z{&sV82VM};kf)&dn>c5a;Jw-YD-2F)_K$6?54Yobpvk>mpS7}lV?6NuX>Cok=q3c?rnMVtx=gloC-U6; zczVWplt^{YH$GJPZtI<<)caXVr6j%I4UO!0l|OU%DIU1rmnPtu!I`h|!2J`5fa}a5 z?RGNAnDn!qK-rJ@jtv{{u?UnsAbF8Vu0Qfv`^iPXGlM2OzsI(~9cAWcbSUO~^1xZl zlgykYSgj|(0X+2l++2ujn6uIqE>(~;vJEeGQaYa+=$j$?JEYL)%T<=MD>0JHUU?HL z=Sf}wO8KPxs=077&jo)TX%#dIQA6kO!2Qxmz%%F7^LgNY=_KG<4ecd2T^fWY3MU2F z(MBVD|AqiO7TRb?vLusgFX6HFQ;mRUYNJ>4!2SFV#r(}Ya2E3C!_))Ml%H;0XdEn)^`vV?0i@ArpPS*Y*9(n+GCpthcIqEDLthUXZ+H>B^+5&zO zN`)AdwcneC&t~mO?Pd<)V77~ttUV1OJZpb6+e?wGy+py`rXf{H6M+BL&f0q&BRgw< zaG*2pNzw0WdFgDfDPJB! zq1(w73dvwC7VsfQCGFcdV+GECoTFmD(USbqU`dYC2uq@Eh^x#(y_nihb{6W!TzFCz z>UG#CMi*v5W)|v1BS@iAQRa?7MR1_Bm4=drv7K?Uf*X`}vfgPfygS$EDED*+H1g-3 z@E0fdbTHmYVsk;E81>MGd>~o1o%8`oymIDG|{&zs2wMjeNomqne#~eK_rlX}D zXOGr54-SlXW)2RVG>#Is7jy&wTm;gWgjg&WNAC~>(Y-bffdq`9>F`s^ZlPpwF-!cE zvRkhSfJ)gdH5p==OJujcDZ}?b_fl9yuV} zwP=TH3KY?gc}u#8VGdB^_-=G_oq?CN!4_OJwsw1eU0jgeTRB~Bhn1aF`fI~@WWgr9 zO$9dn4Ja{qLXJ(((cgd^n3IZ^Gs<<5ro>#A5{@jfqgDwFGyLn@Q&T0zoUzhta7GziE2L&By1;^57pM|e|RUYO~bt{bOArYi;KtVCCf z%nNVx>XzovKp!6Dp!R#ZRwZViy5SHLpn2wZ;#&ClXuio!R~-m4YEH21bk$O)g)=4n zULAJB%|Rz!wK(phGp%LD$yTZ0rai}$s!sV;E4vl(sPpHlG{vH)As9DTb=HJRsICE(c#m zSp?t^?MosP67kxxy0R6Herm!wc5qcIYR}3bIHlW~Dg-tRi&*r?eA?yv%{7QZr1ziP$tv?;_uuLs8hOH32lQ6z?d$6=8r z(LP9L8LeAR?I$~0cWN#?DO$G%8^!2?8I>8WJ1w^4RICnPKn*X{=GI14n1jyZ!V=v| z+@KcK5CKNf46&XBS@g*V^?hP;jkkt+7x6?t{etbXP`eZ3uh!!Xb}syXs4XsIt!< zBOO1PXO7+NOw8;6)@Pj-&Q$h$N!SfHca?4X@NTe{ERH@L_c1+gj7*m^CxoRci(P?I zE_3SdT2H6FO1(V>_>zyoJ7 z_b3*ptoFZn=mFfE=(1W#7e_;|6ETzdvp!g05tef$sH}DY3!g2k4V~^4wu_XqS{g!l zS#1y7OOdi#iGssTL#kMPzhA01mC*Kc3^LXHX1wgkeA@f{mn4At}qzi5H*C6X7JC3s*7TAtj&AU4`p~)ZReq3u5=!7fn*Mt%d{)zk z4&hg97b%*ah7hjl|HAfCMAJ(Y9Bvv?mDKe7w{{}f8|JVR!L)&5fVnq7E)U7Ml6Jh@ zq7Si#gE6{54LFI%%Pjz0b8MjS6Lhk3$xi+?5i{$|fl6!O;CS=~NO@y;|5};)*61d( z$?pRIS6%rkOEHLjB@l|7;t=8 z$iX6Lt+!A}M7%pGLO#{z(3!!K9VgnBL?1xJWs3H6YR^fWk)2UPhU|<40{IYo`e$cn z`jJTkGw~mM64@E?R3#cEgms_2u z%e$0BjcT8nlMk*GKFV7uoCY>EKO-jwcl68^lmbZuUB&VQz8)8E&l2}dd9oiyio;tG zCjt!7WTrN*aHKjr;P_IfMNoVeyK&{$Q+F3pYGX&-N9T>xp`JU9{cv`XliS!g{Zo0I zO!@~})x04de*Wx+CS7zRf^oAOtIA0%c|tnE*d^g%+MRyW9u#{|;CtCYrnr~yghnCm z2W&&;yCnlLEf+%ZrwM6`Y?=rtxH3?<7-xa)Z)PdhQk;Jf< zGmkoGya(3)+XPr6UA8}`Q4=z_OZ>GoWfygfH=4jZ{~K$!`iJqTM9uJl{RO#u^1%Jl zNWe3t@c#~&4~_nNV+&mf}Mz&bLHjyApInib0sL)@j4bh8|(<3?r&$i zNC|e(5W<5U?`L}{66}yDINUU($_#c$mCt``2Rpo0j~(oIvj4P*Jge|GSgM!{SYU8t z5?0}_0*;)ENpx1HLih+xG5YiTNYLNqxG##xU=4ByJ-jP8E>@^E}9UP z8rJ5^o2MltWqdu(N1+YIxgTZ?MnkjdaM0txnFXPoMI-a>C8$Q9H==Da@KcSxY`p7q z!Bl`-yW92Amg2hkN|SK^TqLB;1p8s5C5>)yY(dZYb`t!^Kt>_>VB(!Uxt5_9TdCq= z05O@PDp;Ct&NFc_`N#m&u}TNS-crE&xhLitC2b@)4jO?qyQs5srE26C@wK&!z_IJ1 z**hDdP-CO#qK@lPp6P&c{5D5^X8~Lgjnf5M>7Sa*UT5c#9Wr%U-##)l*gx1Fzos)6 zg4MWRW4!UG__kde-BNFlM`r`z=s@V?&z>N0ylST8uk3nKA*UBIWrZzNtWe)IF2Hg_rqqOrvF z(cR22iXQDoRIaeUQB|(7bL3v}@wypniTW|ajcc&XbzcL6lDTg2R3g`%1O3@xrkZw( zO(;s$&+Z=rC)tPn>kwy=segTpy?82w{pj;?PDtzvXX%f4wmih^lv=y?%=*wseY8>) z_`^=Uij{v~Hr_eVdeM_;>ZITWf)MwJk=$;V5}3EYEKC4{8WB%o{Md~v4r$l7w|gr~ z1)57&byrqkkfN_OxTUW(QtO9Aef&vf>8e%o7N;sqd}54NMehYJnC#3>i+{vv;Y?M3 zXc@cV=AR1IQCj?+aUY$JO?X;-pf$3i4?Nu3a&>we{?XSEtnV4w(F;XJaJ&MBc$%AS z0qBX__W0T+7^u?bS1GP{cDLn6Efnr+&7iNwq>y56le^luu5rDkBvg3$#o%*kGDcrP zFm4WiFAu`f?)LnmQTkp6N^fu6;zjB8X(&ZS!?4HqZEX&W4b@xA6Q;&v3R^g zXLd&4hk>L9U^Vev?HIiS+7$`FHs(aPfMqE9mC@I~10?b1)#K4^>L*w%#7QHHXF#^w ziR2;i(=$%4!ReR1a5BV>UZEg*FLE{)$K=uSti=Bmm>gOWUL^GoD2}-V)NmbUeAH1L zv7OO5Wy1Q7?%rJodZPK*rIgU!ZA=Zkc60D@W=!;XfGA@&^G0?Y|0G7S1BsFP;l%jR%}6lfRDsGf5Nw+z?tOrH42ok{LRtK_3`#D<+= z%e-ksYBD`B#3GHsx1ifu-(K4~0ta1#VI(EYqQm^ z7;i?JAXJ;+lHUI2DBi?}UkwhcKQ4rWA*!){JuC=aL(4tg;kbRk_0AVb)s10Cc+`S& zn$t`R3Z7tnEPufDG3Ei+h=7RP|4S(n{^W&kB$EB)g*SIYIQxw@A=O)#nCg8@PCTJj5Q%Q@|yA3qFW#YW!+d?ON!vC zm3N6YBUHI^`5I`P8>tNP`IMya2%6@T3_x&UX3~zS9$uo#qkNT`U$B_JmI&eVHszPdEyAL|J>VpU$)c$9So2q$C>j z5NyXmR)QDeAYYgYv^t1-8f;#14>CA!-IXgL`vxvt&+6eF7s~2$A*v&zgIfpNP+-tf z2=%O$i-eTfNv%Qulp`Y9&h{6a7Fv?Uy!JcW*bQeXInMUS;yyb6{&;q_6+@NNeM79G z=f<)pHE{g5p1t3XiQsp$IiFS&FnR#NxRvM!@X{#+&nWv{l>8ipm~^VHWSt|wlg$@( z)Sr4xe_+RyQh5G5XcSU-KI1MJX}ZPfuK*?BndOUn@WB0IPrx;ScGud#AYkmJ(q~tku+s*XhnS|Pb>q~K!tN)7H&l+-a7zOE*_>#i%2HG{dAm~ zXm4k~RP!r!mz4&xOY7IZ)&?{ZBVgIzud8%<=n$^}jJ-VOg8Xd9Vr`RZ*1-qIIkXpvk@Zba4A87>t7K~s~ zo#J$zt+M|jIK~Sr$-y53KBXy$M9n1!ybhpxL}fCnU^?IE4(X#Q2f^Q{Dit(qgmIQcUhny^tnf^jn&J5z;fBke>i6^6SV99l21$qTBzkR7*~{5RJUCW=34LAA>P zQ_g-?(jG~L?Wf}u1=SA9)LrSpH9e3-aBUTkq-1dIRsbP`Yww09Z*VO!YgCZ!kjzmT z!8SEBK*XN`J)wFG3AUX>`$b^mIZbMx?W#AcQv{_|hb!KiVwWQ|>k=E!^*wJB4_GUc zf1?2^W5LnpPJBgHr#u05GO+psn$?BEbMbC0GTGz5HL<^(i`ZnYe*qhXo9k&V5n+|~ zvqtiPTu73od_OeeG@jwC;&?byz;ISSCqB(~RxR&{_n7{gYjnhdKVzeC7TC^^z$e^e z+Wq5F<77`rbCt^zE@V6=RIJIsVHcp3#axnuxdES&$Am=9B?r9oLmrcw#fp4ezF8?kHifNH+2_) zklxg1;K}bzxu`PUl=G?KO{wVuCiVvCDb$;KyYi+gws_fct%?;YxSMUD0vmYR#x4wqs2Bb348EJaU5ug?)sv7mrR-lIiwvb??@<{~z^91mclaF^q7 zxQyPijQrC?$!qB6T4H{mYY^lO{016vn%nRSalD+JV|a!4i%%!iE8Oi9wlT-g2Vzkd zHVS9a{v3lOW0GDX-$=9P;NSri_8NIq%)A>eC`m8!06;NI7)Wjw2YgCiBr+kF-0%(| zd67yhDE-JcA}>;{ZvIBq=x9Kd^CIzg=|w&VpM)1Fo~F)=Tro0Qr_#Y94&)J8TZlCH z629Z+r0=NV7TQRpoA;a(6W}rMDVxCed_Ltir-h@q{5~ai!_66GP?Jx2aok7ep2u}E zPO~-XPIj3;N>9>!r8R9Qrbd1zQd2Uz7QwhqUQS+9~q{A|wq`=piK#tMcqO(t@p`cq%+m7L1-J z*9XrN3@`}ybIB9S$^{O-l87+r8;@?uMQsYBycHXThfyA@jYoIo8VhYa`Zs9g*?5Gn zEx*pOqUt726yApy$-1K#R>(QHXeONpq2iqxkluvB#6ENfX&Dc>Y`-iM^eQa zWa`GFUlti3k)5R~v+?M^i}d*?XvD2(CQYNC!N;K+kNyX~Ekx7wjYoTa%9g)$Nic*a zh^Xlsj}9u*=K;`YQiys804_w-)Qv|c6&WAV)Y*81Z!PuU*?8pnCSc={+bZ1*j+Z|u zgadRqCg7(OeMQ~PMUwDS+IaLP@o9F{J}#Rh1sMOW7xgWwPDtb;EcaRmbEL#!QZGV7e%J3 z4i`nUPN_MB0q8t=kqD}R9+Vr1whq2xz%-l z298@xVrG!-QKyAtkX3@nB?Hxk$^9^5~*1b%>a%p zj{IbuqTt-2A<8X1NT_pnrs@WsZz5t84fDmG zR=Vf)f?V__gMS+~3OD!}zlsoJzR;p^Z7x*F(0(~I;xwV*`r@cK)4_0k+v3w~*Efgf zbz82{5hHHFM&XP|_%wq2PLK^s%@f~gCVV^?O>-s86M{_kZhBs*c9ZeQkHXt5E|Wm~ zTfnE}c_DRk2}F?Rr6#rCiE=d@d0tBU`y0Wfw}2{FiH5&R&+B1)5|wD;Y3e+$-u5We zWy4^-OF4BQCIBDgGnQmlzsswKpcx&$P=}ovB0T5Krnk*(2hL)ioTGEqBB8P0<+HXu z<5(vFa^qYmZ~$)r7Czlw3XL6i;^lxRybqkVW@tJaE5667Wndb~+E-FOdXXFS<`kEV@WoqG(cZ z-4%BukA%T%(;H{v(&bj%^An8mueePfZ9iiOc#lJt++{&_*dLl@mRAY z$&}SM@xcAEnoe)E;=Xq0oo4KW|GQ$m3en1U@x25PesY%HBn$jY@27eE%dy~I9yrT_ z%%%7HJn(Xu|C$HRVxF9=aIHP)H@yJ-m4{wPXk;Hn3)`i*IIAYR5M|E4h5ybP7k(1T zwIaHGp1xS1Gh?M%PvJ=u@gNp{^dSIIa|4UF!AqF5q08NJwu=TkgfEywkjx=3+?9rv zY%kHb+<|l!w#G(AnxpN$*4El+TU`9u8ovf3_4kVA(W7}f>C4YoR+pnSscv6daF6g<7F792W9^K0z5^T|0kyh+|%>@dIX7l{|xYHO6L3D4?K|h{=4AG zoA1~0SC!@WY%fwlTO+rxf~%l}XOedtlH0Fw8*(aen{iFtjV)3SyTAy zDJ#KzrD^@0T(qWC^S7`On`-_MI0GttpsqlAF!9d5yttt*9Xf9qZWr2Ud&AucNyckp zkE-~u=U`>O*i}W3V64E#-$El;5#d&ExI0`E9bcP;E$&ipZKmnW7W7bTq`x$< zxu3IvrAMo9w$PrTS2h zJF!NJ3^0hO7-msKRUsD{X?anRKChfCqFz;$sHr=#ZY(lBkA6w#+O5TV;1&0taoAtw z7>I?*AGA9Ea1m@i2#qFXl6({Z7gIcGS9;xBWPCJ7oSk*})>=kAJL^2(9AC(0&>V6> zraM@%c?y@>3QK@rn|~&ahF^+Lqbzgj1|zdlsjeFlH-HW~W|QAYk}WGxZ#1^GJ`8n9 zl?{!0s}3*fP)yNkkB*7^L|c{3&C#w#b6aIw9jb$ehNw_UoU6GUZ7gtQhFkE_R&jo& zwBNkum6h_LSzx`>7XaYw`6;PmSwE@fR<+3Zi2N*dWjcv??n%mb=hH7~>;JopcL3_$ zy3!N7wY0lu{r7w`?5_Wlyd3Ja!$l^@a`>ZI+W2M0vK)A*Ka@tsg8}vkmA+%NhpW3q zD~FB&_=YrHGB3Lh*o^YaTyjEzsRywU8<={p5rpa-xVl2oPv2cmI{KOUoo4Z0bD>T9 z5dI8}IP(B0Ow7O$PB1faY)n~nk3HjfsU)T>#75yvS%56rXkJSyQzBK@*#dRoCd7^m z#?K6J5m)SPgQb0w7{$^}6B7gYSQdy441Y@%A7t)fo+G(0j`@&z#~A1AgGADe^-r}OGQ-fkXlqFYy6GiY9Y|w+*Ta?U2etM z4ug_gal}*UtvLLc3H{sQ{&-Uw?M77@_?_K9RBN@y>m~`J{+WR8OA+S*e7ZWuUOW}T ze)RdMCS>BSae=Y8H!99U7dfRREs*Nkui_VA*sVZ*!>#ht#Hm0?5#c;D-*)n)( zeRx%O;YW2+5i4J(i7u54cU#a@Y{7l4>HV>IWd031*EO!UCZj4_c`+oMG*zOz5scihbAv|4 z#a8Yc+TD4rk@->vGTd5k=gWEO%9`!dA68zk_o!>)_e;yKz^f%@FSK8DcgY_ zfJU5Ar`Yx$VB3A-TLaC#68geLIqi!@9nUX%DF0n#D1R(7l)0qm+yU6{7j@#lHL`nt z!PY#E9`P6A?Fx+w(|x|7i(Q11zb)!m?=<4oB8VSa2Jzjjb;Cv7_v@mL^H!t(j3Vf- zD1-hk@jBBt7T79RH9VvqBP#I)*vup+zW#6wL z9(Egz{>zJ?|B~G3+t#RQexmBMi!Z%PO;ogYZAqV01Fhw1?Ou+lyybGmAMeZ_t#2M2 z7>~XJdNK8aH;q!F80~e?u1GOjV@`AnI3A*3S&8-`psM)u>hb6{^%FQKjmsNLVhaEk zm>Wp#hg6mI;B9NL5xp18A7KmjUIZr4Mcw9$E9=8!TYJ{RKNksMs)FM>m)aSw;9ZWS zXcxY-hXY=KiSFKA*9}Ggj;*DE;#3lR-hpc`4AtoK07iN*^G0?YB@J53W`f083~@&)pQU?5A<4=a?Rff^O5JRvbm|BHl z^q-*V#4vi7c;bu`yQ81r7{O4FshqC(P;6zrquJ`iL?qx(QNQ`b)n}fy?%WN1=d4|S z>e@9MD$bc2wtG;iwZSFYG}f+zAAO`!kv*s)9Y4Cq2J5)h3hxlNdWnrf0x*bAwPE-< zZpY;3IIs1ZcJLQjL1T}#J0Nb`dCkyUZ8yh$ev4ULtC3r`8!e{-CXZ)FC{g8 zU+kUDs7Nybk}l?qKOr8h&pS=o{BaC40_ik1FZnmGtl@$C%iIZgCg#uPf%~Hp1bk5^ zNiZ!u_>rll(kHMJ#L$ux9gQ#qqjc+NKX_ThP>?GN+6tYFi6hO3CiK&Bg8-e~o!LS) z?a>H)jmisc423o*uf;e5(A8cWBQ=7DDviRC3V_lFnh=dcV0z01eV17I_(GB|1RP{Y z@a)+tp-~TJHL8GCLXqz6=n8`8=+D{uHCT4^mlpUp z5UUlZ>_wG71oU-r+s-Sdg|?)jdX(hcrJIIo!xsnZ#&^X-%b^=@hejc~@opZtUpEr) zOx^fJ9=KmO5^%8m6`iz%;BSRgq85+nHiY4-#8<(~k}AwL1d6eSraof(nObexG4B4X?=Pw-`?r)Bc<}n-( zi-(v)IUWR!LX_iiJaE5qB;c9KaWxOzuN(SL?q>?lyg;JCk!G}swDr7-X&PTkT*dez zcv(_0rcDQ_7QX`>B-LU(6_irE4?a^$Q6UOS@hZf*j8aqp)C4PFJ^m7KkV^4a_#~8~ zc$zw;c+xrR)~)Y5`MeE%`Hje%-H$M_RPqm zK_4aQg7m^`r-uejkjP_aE?7F!gl$F;YOdrpH=o23DgdsfX~u{W_I^XX?~r zc;J4WO28L&d?eE%gr5~su3CPgJrRbhT>lF4RZ_WTP9mvg*FpD5Et{M-O5L6V-z#;i zPzQDUH<}QIqm>Fk33YoBpeEIA4WER%6;D&AZlAJww7Inp^1aEE*litG5y{R9oH5a8 z4nQ90Fjm(ps3mmldb|G~1yUA~^;Q69aV+|kHXXc5(0p=;7 zoG&ON+Zn0M7XXXRsh3?w`C_Mqt?yG*7s&ufE6w_pet3T$4v{WK3>}aH>DP$9HI)4`fzrFejY~ z_}r;yShCT9QW9AYBMX0UO?e0wlJ5u}ICIlqnkWZt+vR2jf>{!Jiw~?Zv}6sGS8nYC z=#I>-9CgKxJjMrndpA$0XWi_t*ecE;ih+F~V-5+>RFMMnB!OO$HvkOUBm7fszQSjfYEYH{ctCH1*QuG^s(lFZ1a7|ioFgeZloPV~>RxOOSxX4`IN`T% zIB@M%EZ^pwLv^yPpPnx=&}wLQ(=zrt_95K)YHZwVwcyn_2n(dTNe-57Y#_syq*D#>|~sOliP(naDT|3fM+HvF6M#zBS8dQ zZ*tQF(*lGanc5{?Ns@CN(M8-^dZK3`48bVfIyw$s7BR?#=_NMAcLFAmG}*3!zB<03 zOX_B~S3nD8(<$^}dY^zJDO0Vd04V*S2@<^7?G1o~3~b+oPa?1_o(hGAg~Bbn+3i@d znJTBIW%qgrO-oy}3M*KrpxuP&=+%skZyzMKE3Vnb46jAs8@HVvdpt}kc$8R?oHE>&L+5>;X|bu6|$fh-$i3DobFQq)D$bA7#9F)QZX*XC!rX{)6^-( zr^Fkoaw^9o>=Fo%ArwP)5^2hUR)pj%(EWM1j*>KX`jFjeywMgzHxS>P26>caHE!E^ z^|UcL4N7|yrnS*4P-#9r9%c@u`7~%0qBPIqf%}yv0nb#L8+qV2^@U_B_O=J`=mc z96g%c??VbT`GeN1`vZT>*^)=I?i;u5+&FzSYl2K36)Sgy^}!~(zPy|0mdAt6p=*zX zMj^U(B@f)MYYBL!u04YX?$@;hTy3JWNv6dJKQqP1))|bIs%0oT0%5pHcOkqisdR%T zlhnS0(3@ZTCg+e+!x6MmYFG^c)bNvVG-cGV0#HH?zW{KMHtS{hB-F5YnmRSyyQSXl z8-Y|&)@C|1MBNQ_%QAJaf?h)RzQ&__71%0eEO+!)Lbi=`Q#Ml!SnQ61U3ORE=!XV3 z_4Exj`)flzI8eDu&-24n?8+M_$yI`v9p`+b)52avQgTDsO^#aI>*GE;H%!f9)ADVb zMDFz{@lZv#H>kX3XP*8ER%^&)>la#izAqk{Z%N@J=$b6idl8J#pT^F-^CwASMYV3# zs1V&(cVtf>`cfBK&Qo8iieLRg)8rnOCMhMZpM^&DGV9;__iY}yf0-rVnak`?dEowK zmVj#_xjV{)DVN-URudqYzPD z$^-X{Dgnnmg1{srb>eS1f#&?`wI5W4aa>BPp@*w?@fTB+;G2a$bTtBQ3#|iuJKX8+)>8!nyqwbY#Yku_4uT?0cS#>B zKFyYlfV-r(J9OYtC7Bq*M&UBC1PLqR>#dRI@BrQzX=n;1vl(A$MqHB%Wn#qDf@J*Y zh!HrtT#Vo)fiBTivs^{f_(pUW%1egL0D;8#4A4*Uk8uXcB_ z=%=6W@TnO4PsiAcr$X3I$oUS(+vdaiS{tMpwz7<%P^aIh%Lc41AWpzK&xsF?L12Le zgFw^}*qZ<*^k|0f0*@?>nrYhq#A)HoPQQVS-Egzhseby;xQ}UN2w2Qf;o=f!H2ftV zrayGdozb946#W^&$k6c($`0u`CbNUO3}>_7Xw^OYo3@PD9Oon4UNk3tEA3psIMprC zC?(v2ZvZ8WxCLq}E%qyYg2V9%|5RIP@fnN(amSEi7?_dYBoPR)?)OXHW7ymj!IcH< zm4!z_$JPvwz0}SE<3>9Zl6{-q2?#(6%pCcZ;n1GwKzC##*Tsd$A&EBG5X|JW%~8`q zj#fj{{Cj5wlf>Rx!8oyZRt*t(g?ATDr*xGwiDAlv1R;Mp)vBGU=v-u$Y*ocanc%i| zcpfTtc-reFZts+DBm%LQ81}JNB+sQzm1U96YK`>tXMiSU;ftk!5!e!a5rXqr(I&~}ovYYv=+kIe-f#bJ!KFd2N z?0nXtAyraRrem8j&TFODHtg~(X?m!&#nFxi)`9FQUE9DhY&KwiUQp=HyUHZv7 z+4+%b=n_0`+t6rcQL;oMp74ssK)8x{MZ*7)7rZYADoV%bM0nzz(~i9asLaU`p<^`C zC`#MI#M=ggAcOZ#BaE%$^_CHQl1ii4;ZJ2N`7$a}!N-*~`eDB)WIMPhW~+`CA-q65Xfkbo`V;_DEjN;>AxXcXGD)bV70`;|>*gR7nzE zg^j``;mOI|iBcZQ2IM}`5^zf{WGQR%RzWO&T*Lw#S1uOtGC)}qHLKMM&o`p1iBi!1 zM%h`Dufb4c*5qD%5?K@RR4DHt9N@Bthn$KIj+|EIociN!gEVU;R4T{X06L*AJq=0; zHSf}|kq3qC$aL!0i}--_p6r~*1iSRV1PQS;VWyk&d#8mnyZmkrcEimsWjoTjLO+Z9 z=)7%OyYx!F+?+#~mUpG*%vV~i&HlDcf18?oMnO|4nuTCoXTB$&P)bC#LqEZl@Qc}z zra1QdK%)@Hei;wk@7NRYOo=~{2kw`60*rt0#6xky}1-9r#>@qL59Y%abShWohqFV&f|}1y$s2n zra0shyw9Omt4Nkh9|A!ye76Tr5EMPCg?!u?1HhA8X@HaN(0?KqCCQDu8ykhYag$aS z`ORF&lVg7`H1a$4_={!EW|l>|Ez*~vSPmCQUl9m6i<_|u;iu$RBB43U7e6J}{v+bk z332Tob?CsON;2^`Y!ogN`zBp`sRES6oBn}T1AF|Z%`hHOa_e`6MqDJ?AU}>N7x{Vq zlUuLmw%V=ma_g0n_BYCQ>z@jvmTvt?_$1tV@l@Ka=f_OwtNI)k{q$nUQ)BE; zi?J6^g|MHHV#vd!NwH2;4l&h_Pxi$eWGkmwAV<051#=+wZX!^ z;eq>uK?FQgGklx}?$-M-C#XQMW_mby69(n*ji|oMW zx#?&Oc1mV4eg{85Kl$XWiEf{#cd~Y7_;34o84Ex95P+z;zTj=}5`sga6aTer7bz!F z(Gb314nZ=Xl%p#NZ)1CjzU2<2v#>QbGSVDv_qDdxM%$N+HQV*p_%-P3-eZo>;ie%` zto}bxc{Z-TO4I(CXZ>f%{be0ne1-`*`4f87ANpruqMiN5bH1 zpb1h^^Z#6OCX;xN@_74+N5C^R|E~8HSnxwJe=-l8#XMW{S9$0G{G3S5FKOcF3cuzL zoi!)(1N4(m0uR#s=dkcu%^y01=d)d;Xnq<(xaJ>Xdnuy%B?=BV4T)kk{{dFK3Vfst zvwyzvz4A1zciMV=DLc}XCE!KSC}atE4G-ME1Q75{E%p{3xL=qFxLyM2bTe@Z51Ij0 zPcqx_JU_s9Y%n!Y?HBeu-y`{uNveBzjQyk{;F${l+dObTlS488DG!{*JX_&E%tH_0 z!ncUtYA&5k!k?LP||g{b}K@xc8Wfq-Y~vWN%n7ij{n z)qcsC&*eN42AczyfRdK~cFCDc;$6?B%wEdkdd{*0sPV zn}F*zppr#lK|WtVXus5!26=b?9=pUEG7-35FufMZ6L$fAz{yNvAIy)#Piz97xr!Xk z1NVzbDCVnp;4J3ZtH_x=^Z@=&czz8bbIgay{EikyS*Z;BeEBsN^cbe`}xY;w|Ev^dlEv2^B-ByO1oG_90kLXl@nQLtEw`#D36JENX?}t} zMq8^h<=I{WQPb0jX&UW>QS&Ger-)G_%ollL+Ge1kv}=apsblZ<=rA+J*;<`7KI61B zH8p^PJCVGF*huTv*Fk3wi+g8iaS|J<+i-t`@TB_&n*9}$x9-X&(DVb9ru^PqCAu~b z)`tdK@rLUOhpVU4r8GRH=^edoOnkkvKYp|?@UNx$SLk+{fICR8%|%1nZ2NL-6u#N^ zFuB=Q7(D4RrQ%?LUu!XVW3D04HryMb5vSZxVrUmMj+R^L@l)Cb{ZjF1_Aco8YO9Wm(Nuu(XJ^jam{m1I~&f1nZjS}b+^%hJMXm9%cBbX8=)qR4#FpMwfYjgWf}U~c{{;E1^-i4{^IDKtTtK*kfOPS zAl=tTd7-`7YJw{b#y6tP%u1{K8&#tR0M!n2F%AAM_hRq-eRvXkvBguN-OR$BD0{@( zaf;rKi$1)wNCydl1xL+{ig zKVQGl6J;?_+1$ZvFH`(6S^LCoJJ(LlKHC&R2;1BCWBkj>Hb)j_#p6l~C1BU*-I@k~~|r>dHr zUAmPgh@aeVg+_J~(!Ue!gFJA*pb+rP(9UOg;4J2gI__RG?A6rdC}(=GMM}!Txqe5VwD*)@tdiT@FpRaC%~p z#Z8wBW;~=(MoS!jz~pcEhX@%I=~uC&Pbo<1 zg+`onPGZ}54=guN5#Jg|YOGeyVNPYCRh2u~iGsMOGXan^X`fSswCl@|c4a9Q?viyP zpe^c@grdngT!fra8FHRfcu8|fSr*cwP6-H_gjW|K;fr&VP+P*jjGbK<<5k~w-i|#I z*{}^fSvxyHqY3eLo)7^pp%dEVjzlIDi{|a#97cb2B(k5NlbyF)WW|;As-K#t(`Y90 zbUVX<%Xv@HmjHxxmHq>sTvy4kK~!FDUqAjv9!?n-u%yibn4z^w$FCWMT8TPc)hR`x zg7gt~J07Swx}&mfu-&L!S{oXK1sz_+$+lvRwU~dG5LKRl(OQ8IB zH06^SwCp@h*EzLOIDWESA8knu4OWryN)zsPxd=yDnuo9vo2B^?_;M=PtnRpaF!3(3 zuDx1}MxMI8NIav%Ck00g!nwa_7Jj2fC;!mn>iVJW*6;#BM;y1M(3ce{qPPJqnGD z+dPO9-2xjP@qC=GXAAfO(f3TnU7XBI^ z7eEjPuFT5;9_kOJ()tH19Gp9is*s8oaE;*tM))ZeFZ?P1D&?)!va0L^9%~8%D=Wy~ zDEkcYF90oN4ET%qBx1ngY3gFYN5Cnu!71wln82?%ZPvQzD^Hp3o|ZAHPOhysbX<)& z&h{tH#IWZXA4~f|+_rP|)WjE)Blje`#3o*`9yg4IFCMsIya%SDGxt7oDNBiUx?*r5)moCG-y;VE7j^6Cet22V z$Ll0#iS+o60lK*!pO`NyFLo?^0D4m7#T0U2I)0BNrEp$M0bms(pBFnBP?I`w4L%8- zD4wQHCmtn@mteK%L_(|yEkPAehIJNt!8uhtnMZIw4`^%J4)(O=RpbS6+o?J!-%A3I zmMmVs(~QTMLuXzLjY4$h6+Cc%3ZH-{b*5Xtb1e@&ztWt5`khe9yotx1rHru-`s;Vz z#RK=3WrSjWHxHb}+{06+e&>rk^Z=etbp4K`i(bxrVQ#dcWMm3^#*+63v?E5V0{oC)+cH1W3F+^##sR0DH})04%j$rY2<}%90j0+jdL)dCT*NU@JZM>;%Vw^oMUOp#QPJ2 zjhw@?jU0qm!pgA=Ckz~Efz~l=byBkIP*#Il?{scv1rXg7{yc`xQ{%Rsf0;gpjvTZ{ zIVKOqG?qJmNPAs8!W<^e8PF)iq`8m>?$=@jJh|LCA?=HK-~p?hW6_ifX@`>JpLwiV zk{HbN$7Np01NSdUp_t#q17|T$GSl5Yb2|?`fSVI-yGXj|#V*5k(W)YP7LLU;J#*PE z_wWSqll!yKD8zR8HV@n{CFDKC03tKM=Knd$*0iY(WmxcHwtQYY#b=HfD(BN^}p?ksu zA~fRa(!zOmuN^BurbKAeZ%~e<3|f4p4VP}9w<-B~43}!$b~;69#E?CTv4Gw3^mu?d z?3SlNqY%60EFQRDgAwrLQs>w$8+qUXE8RreEukc7@>sJZ$+TOp;DP&>qfpGR<$<%9 zCzOdgiiQKFkxuPwo#uqY%60b3Aarpb+p( zyXBiaa2E5V-GaTE+PfS>bnEC409?{;NnNX?+43;-;O3OfB}!Q>kHB}zYEiNSR?A^D z^1@b&0#L$g+4*P6YMF^o!fFvuQ)jiPmbZ(=l9>;FEg4A{z4T>R zGFov&N8ngIlQowm^A4UMesaGJ8iiOgAL4=g1%-fTS~8#IfwPz=Eg9_9ROaOvqFYA` z0dPr6#v6eVx>}ktKZY(`Q^s1elr8fU_)yt0N_xPSc@mAiuq~qil(1zU0UTrm<`4KJ zY#H%1b+*jW?PeeD%YzfWGY+_shp51zd|UuVLn~p(tT@*^k6eRv4iQ)gb>wlh98=_Q$CvyM{iF-I=!dpFl)QaxGKMWA% zc4(>H4-pUwRFI#Flf4Jub`cGcNZo|5@s#v86#YyXaXCdFtpgBJrJoN^u1YtjCTaA} zeyRFkTq$}bl|bd$02LQGucEKoyQq&_(;U9EKH3)NVVk{F+RaL>^31U3x|l*6jy-!;)c9E_H^H7?g#)p4)pQPrr&l1Ej40N!SC zlNkTrfKQ3>NX1-?*UH;~m2N*VEu?vTrwQnda?)#!78DtAIP{w}TIU*nUo zhQ-s=S;I%+@|bqppsCukX(^#$Ycw>02*#PPej!E11PI#NeMB?{t0iTlXi^R*tZ{Cb0+gHtfWfJj?$o5rA+~24g zeH>8bY+w9c+P*)@Fr_#1>5c=v`)fDulOEg;?c;-8&{r55U569Sxr$X3|J|E|V zT*M1szIm859@dL<$17ENR@>mPywprxGy}owC;KdR*~+oh1zHeCic#CHVy6_nXk4LQ zbcW5|t8irFSiQS~#r>_7D~6lx%9g=P>%(vu`Vr!%R(EAfiCM|#aUY28>Gtcv!c21nun!D>4(ng8Lo|&jx z;IyzEi(dvk)`osuv|1vqQeo4MCOJV89M4#;VK&hU$ zo3&!NsQZ3h)N$Tw^zST!{yWN`FAjnfE18SB`^%z^@kXQk*&--^vJA>|X(e_Mw%>zX ztM4?j-z$Rbcgi5Un`JGyDEoc|@vz%y^#4!<{omzAKizCa)oC9N?_Fx5Ne)j%C&HLg zgHal#L@;Uwv?~&fYRr+B3uC`B5>@#nJmH^Lk4Lvb3|>5gKP--{Q>#BLFf-wk&aFyS?C2FnbMHm4x8tI2^M$@B=prFZRR|KyrFOTG!Az+$Y`zGZP7IrkN?2lc zbQX>gO!Sz_>1q#!R)k2Fn5_;bA_0FcP&PhYMt|THNYMKQ;(!iF(VF-5U*3nDgWs!wk zYW`bb!R~lOUM}t51=uRdM80}Q3co6A{T_UQYUJ|9k{CTuBUdA)Y1K|4*ET8uY8L4M zqava6y7}X2e+@XuVCF;kB!ZdZsZcmjsF1SZz$4b3y*60Kd5`RtT<8HfB~%<8Mr^`z zG~7(lfmCqfSqt*)U)h43N59R8+fMC~-R8)>>g||d^|o(3q#WvPZ)g;v-VW!1`_&r( z&s1;6^T7S;jew(i0~%?m!1smJn-+;^A;NIg+uvdCmQ-&^ahKX{J@n^lHzDjwxt$9i zDCMS*1LgK;S>>hxlu&N{fSOcp1NbDAn|PW!<<`C7nd{evt2a9bLKWgPF$JU&3T}aA z#t<||#m&~Q!Kt9Xv_M}0WHkjkkDA*Nx9z-q8kli3P_LppE?CiB9}g;rqU%7T5JmT| zJaE6FBjA~e?wvevzoH}HsOW%3S}yRtDHpb3VtR9q9jApNx)x!$imnYWODZ~_*h^LS zB>?WKIud!M?7j@2C}pP*1Z8(A;#$U%QvgaRyYB%GQrSI#PeR#=r>RqRM{GEM-Go?j z0H=havzImj%TaSP)k{!v;#rIGpNO@JGkH|p!*SbbVabU>dKKKU!3u8Pf7vtJCP#{+ zItvbScAwyWc$yelPlH+-R#oI($j+-AhIj0L9vlu&YC1{|c4`wBh@ zB`2PyPRTt*-1{ubY|^%vOK+5JSdDkrcsH7pdB^rr3idbV_C#nKS%1P77OC zrsZ1V9-ohC~(1Hnin zbdlViVwM^M zFS4KE$K;n{0-iblzRm;p&%aR2f4~E0F;C7v_mtI#c<6>io5fd+zw45mB4?9v8dcII zb7n=6-1Y9CDwAA%*r7vQl6H(;$pqRWy4J;0dZ2oM(F0(dm2;k=1rLF9aVyp!J{g{z znQa+PQZqM4+ zS8j%F94{}==By#z^JBFK#rFLsbZgeRz)&-!lD!mdbXwRBONzgT-Q@81*2R5HRSeHs z)(qY`>8U>TAQpK zgp zBPlv86S665JGQ3cWW4f6TO}`W;M%i2-=?ff0T!nOYzCWgf#@aBREGvaH)RQ)iA`C8 zkI7A0Q?w_a$&>t^JnrMF61Z~N>Nesaj6Vv%+n0z}l zofsy2wq(5y#|XxGOyzW?htU< zsSpJvc^cwerq)gYD4`_Z2{=e4`7V4CN>V&cosv9e!|IdIT$@izdduvDp<@Cop(ZJL z=>h5J$zAOZr8Q~4)RO;sk^sfPJeu+|aoefARM$fik3G5j(spgrP(81%ygwdf4qf?e zXcVF=f58Ly>q-KisVo1)1NZAn0=}r@l1qyWeo{zTYI%vig)m%Y`EhtzQdy=>5~(d0 z{?65w_PkK)a&P!fsY`__sLM~%$P3$)3V@nz_Bs=^|Kdo&f z36ZU|!epGFZdtNZU8K$Y9tEw0u6&jUoKcRPS%@qUzPuuC1jMLL)wa4Otqge;u+*Gd z*=gxhoffwKPVpMCn;dEB-nfs>^-~izkU;?2bS>1q780RFj1uH|`X{;c=@(juZH$NH z)9QQ_MUx|XE`pH==yY(GE602Yq0Tp(S%mUb(f)QElkbk zXy%+!g{l5YGTDWx3qAHq`kgHrN4a?E!9^zkcgva3(NVxcX)T`sPj+lUFQuv=^+_Jg zjbc=_K!P4Tkp!=>@vH!_#xqlldMXY~6r-MoPr`B*Po*tq%>eho-=R<7Jp`+x0Sd3YSfmG>pdmT!R%aD)dNu)NrU1v`KUtQ~{F*vO8t z!3j9SNYm0xYcwO~Fjhhcgkv%8<@h|XkU#)0fn7`hlkl-2Kmy?=34{=mC4?(LLOx6a z>~e%_f3K>#tGcJVrswctec$?zpEcce{_0iLtM{s_`cv)vSNjRE9%BW2folaaal?L1 zf9IfF#!|6tC;n#319H?e)jv_g*2grOO4aAx!=Zlbqv^!8F0Q-Q9gQZ_$$T{0j_;%J zEhZ{UcOKz-8@EF=VWb9(Y`d4U6 z{D_()K(xI4Vz9+dPRfu7BQ?}U9)|1uQ!V?atnU_WeFIeZixDY|3V)qGaet*jBwkj9 zzg3^OztSKQmjpF?$n(`7oj$7gUGLLpA403}DD+ePhXt+LIO<}Tj^9c4A=2;fVGZQ& z+1j=Yo-KrPf$8^~S+dGj+DUxKlEYMq0FI&%w)pWMQutogbLhVyd5IT7(OCW0kMHOc z_ZL2qcv;~a{+4bK4KQ(t#8u&Q#&=FpsWOYji#-J>!nd0~`^trH3KKr>q*ImbO+?vB z_I&A@vJ%ij3*OnD5;E$*`b-j4vvSdD z$QnJ#c+vbOdY^ma7pa}%3pQD#lEs37c-1Tx?CqPBFJCE`potYjY~Qq6y!wE$Ca~vg zjGet=-0)o!c(!xSUsA~BGyM@o-;DHRvJvQ@$!sRwkMp@B8)DfcIeBu*ZIAO zfVQs5ZB1?Ft0m9ex6;q!>R6?3qXS5fMK{c#%V~pjE5#e2k zn}l4?WbFzS)lM`@mLi33lnT}$7ltlQwPOgs!AL)doX?shc>JRNAsYIe5J5#l6Ki#D z=*HEtB(A`+6%qTVY~Jmm`J_6D=Dmd?g>T-4CsNlsI-A9^07~96ep|P1CrsuroaQ4r zBQK`VlDW&J3pUG??JBB|WHleHsG4GWeTcP3a4UzGFmnM8+i*=(k0WipjNQ+2$K+n3 zNzohE{65v16P8p-i8mGf93rIoCuJxhAraC{LQ;`5>kA+*w6>Q_{_YypD^EqaiO*5? zde%Qu8`m&K_Y~6Xf_cA7p-BhfPO9d2@E3DZvA;e$H_w4MqOrR#8c${oa`FsD2V(gI zZS@Lv^~`d+5&ROU!QFGLUwUos^4X{Vok@jFCA-?AsSK=p?W^#U`FG^ru38*Cv(ZRu z4{`Tly@O|_6W7}E89R9V2rYH;?Cu|o&+7g!=-d zrDJDL|EMG;EU3CeYl1thJrQ^x%Q_#ct#g2r;3z~2F98z>#htMZy~emq)$zt@C| zv?r)ibk$?G2o=_?v?#3GYvMbuxxFTQgH^!3NAK>d=WC|CnqvWjd?(L_;DdB0lj~0Y zWbAC;$pREI(03w>RN_0?6Y*;Colw5qcQW?B@fZEHeJ4}>rdh>*Vo!mv&wdWkNc{-o zKRIj(sd14cUla{wGaHg|BOakn70DX8OlpIXi@>%RBLhV;9&si+$5c^63UXMOjOqq! zOkTZO_*HgU{RnL^K~!j``&Ra=h&i!>o=uU$ub>ZcTAgY6k+!wzWF~zw=J9!K8ei|2 zqM6)~DVn6p*9`5|i-e)q`&f#`;T2U-tep=*Bp-hYJyyl6WO?uMr!=r?+B2~DB@4F7 zlbBn}_sXm=Js-~s793R7Un=sQtVY7>ik=N1F5d~~#N{$FA0GumxT-$VF=|4mdMkq zZEdY4*J}_-r?IFaS`nq!S3{}U+8{-Ay&|G_RZ};?=v2$)exawXVZq1h2*K(isXM~JwV(|5ih+y9@Q?dmeCx~Kp7zetG5dVX_zn&lz6X_BZbzU% z`f=$4mb;(jmfm>e{2*but%P4G58ebr$@sfv*imGhM5oR&?l}I0kUPI+trk|)=0eI3 zqDbMTTv@^4#xG`elm%E?Q31rzu>_HH!?r>zm9@^ay4-hyTGumKyY7l=C+IzuB2`7N zM;$@G@Y208bb-QmT#vnpXQ}VEdDbeyqXspgXzSBL1QmV|BCevg*7srI2eFqo{w@u# z?t2qo%iHTx|440Im(cn_NP**ikZq_I_k*y%K080i{(N2DlS~;QTp+D}E)XYfp!dVN zXqRvWC zn|W)ZhiH4bTJl^Dz)w5XtK8`#sWE>|$#|VE`-W;~UP$S0nNkvKm7l9+j1$bRrSe49 z?=RZ=1vpqYcmiP6E``g|{;$^)CjqmD&HsGTMk$6oGmg)M872CEt1zxuK(qZi1 z&hWJCjv}E!%5pYOUvz(eg-E=tr=>%mxPNPhE%~wf#I+^&(P~(ik-gwVed+;Cs%go( zd0IF>9zDa~)52xj6I3a>>S=kI^@;rJ{f9keSo;)Lpmc%2=Qj;!3( z==nNC(MLpOl_#>U&s9`cVO9DaB4I-Gu}#t&Ro6wBFO=FQE2x<)sW<81q1ch08RlMcnaf`tkX=UuNw}h6pfw6vx=4V^UJJ>;B_(k%< zf7n{-&PiN0O7nZ}_SQ4ay`^@S9_8xN`sNhtc6+E(*>pz~XVhue?t7!qeCifs`tTYAK(zbLT4JB7t#-f?`xHb9v&2s86Zcdz52wpB`?3S{<%K&%3HE- zD{Ib=dv4ZtMo&2DNxgBM2; zG5_;NKG7%cFJdC`vYlhx`&u2$U&KV>lA=*GXLEjh0-8+vX`9&C!D;HcNwKlnsxbQ90z?UG zW1G1GOEGLyX6JYCm0Tek%VVD^v*kGEw6fu(p#3nkpgFdW)?IU*11`6V%J`b`aHn92 z*{sccTzO`xMmwz?@6n1_6L!3ZD3W%2M>U7NbT|vB5L=e>*v!X-hgo^p;9H$>@0E%O z5XQY15s4Z1+y}tWW0z&mqb0aE*Ou9^{DCJiz1c`?SbmokEI6n-##Xdp`9mbEZir!n zgloex=fqXTzzxeSAGnDME->{~Q8z)lmQ%LM5(4kpuso}pJZB=3Zpu*kG$$Z%*bU43 zAZ*2a25(sIsHSpZ2-R*_US3VE$0E{Bq4fA_C=J}O++9uG1f!k}%kAE+gW*vj_mxFwZ6Eb))AxjW+r*iQQf09J$5yZc7##ZfKYZlYrg9}Nrf8M zu4Bat4qEjXa|06Ak1-A-t_}7jg!ss-PndnfHMndT>bW^%A^XwZUsAy{jg5- zaz}?LISz^5xF-9l)|#*%)l}31Ql`9F>L(;ICdSI}N8%^?35j1t{X|~?u_?p0K=^O} zSM7FG6tVZfHUarZYU3*;?Y;wAL-BnFH=|m7-vRrphJ6RZo4>BgJqHW<)kM)umx;rZ za?yMy8js~;ICf0G`CyLw>w&;jYS@KvW?-Ui?l-t50~=p(KScYAWG;WQ?uw|DteW(Z z_>qw_MMZP%F&xNtx?S(~qj>$f*`=243J-d^qkF*6Z&$d_iECZ)S$%N9S#Ecetw>1e zzJ)zBVfh9IO$a%tJndAz@|_HlIP=$(jCUu)B6krhmmTg4kq*dN-UOKto`9X3{V^eK zLX@PhZGt-vPZC#}dLBzg{-R|hz_0omB8A!H@V-8Af9Iq~ysR&+@k95Vg%Ip&7(i~JCeD4 zdV(q}sXG>4X1&lO_MWhAFQxAg=Jry~3^RH8I53;+$xRL|Sv^-uNrSqFr|tJDGp|Q~CEm@u5w8~SCgsb$o7aFQlYZLX%^B_) zMVY)6H>W*M!Zmj<;?fENuDNZB%gw&hz-3YCSdvL^FtT}gI#U>N>2fZ0coAnc9b4$_ zrK`J^#=4D&kUq!gQcDt2g1;A9f}OQ`>n^TUp((bCTJ3Z%>0K4kCk#J#Ql#)^f&JZb zXn*hED>qzQa$j}f)r`cT?|m#~;)#kXCD!$iBNFp`maMGljb~-O2N@LoD}O2`TmB60PBQ3a{EUL^HszG)SFu;7Sdnr zs|fbjXJ?(53p+$%04F1}IYe)fnBlQVs4;7>LVU$t1QaEjGBy|~b>WC>hhnLd=NxtP z7uOy$XI^B^vd*O|>Hm`!ukKvd$sQfOdiBcH^lZuMWowo#S-fJ-`ni0dtHr|5sg-ZN zh2c0Su4R2z76x&Br;FlJtHOBCd#><%p2|+Y-l@$g(VOTEpeOMN66>(k~~A!Gi= z%|UGzTE;xf4}aq(pBz0wmB~ppZuVhh(5;mytlPNht6`b-HqCi&ppBxOfu=cGq!QEI z(TG=zX^!&crn#HZY9{@(O>+}nTCHM^vlUNFWyc_VSaaO06KKVQ`$Dw3843N}!NV0XChQ{*P^9qo zkrN%oKGJ3@ud~<+bk@AcELwrm|6&D7f3m@z{;*e|v*cOnNGrltwOm9zTUM17gRr|P zPo$hYS5d8n$?bQD#7u7PZL9RyWpDE+*sh)UmZNKn;yJ%%;okBjsJ8@(P5E!K!UYFa z9U>KdaPSTiRyX;u!NK*x0q4b4&A<;1nm=)q6zRa*DHr6 zF(BFXaem9%^wle`z}gJfD~Dz|s@fG&AIUoXbDeSw{Iuh;>NCKWLf2OLl0n#K%b`!0 z3CuAfXB1g^Z{T1Z)6pbwf>W76STV=b6dKYTe_x1Hg*o2V8vHHm0p@sHbMueXW;UXk zEbV4N3c=0sPtae?9MAr$*&HuvZ!<6cD#|gjKNBycjQRLhHIE~Sa=7<#Hr5`{?Ce)` zp*MdOOU%Kmx$BGIJ<*()kr>D4>BKx3OWRcTttqxeem?C8m_HEf?u+#rMW#=)#GL@` z6ae=Z*a19Qj8w81p<8ZPjk!!A+l}wl=UKbwv$1q8#Wde2ZWHRoN&UGZj$*PJ@|k=r zRa`#IYPQ1|ar`V$m4;grx(nGXXo!lmI<0Z`lTsPK+eukX556xe+caYeKAm{kZaxH6jV| z8Xqt84@4ai1hMQv5*;*~j-@EUiR=jzZfbt{Xdq`4;+g2ieiErk#>RmRPV7=+GAZfK zM>iyMNiL!jaj|MH)`c_0ol-X0T?5^094eDTXJGvdiH;Y+qO_r$PBycq(qG6VhrJ^B z1|Drgsm0OcW3#c-ou3fV$<)6fIq6;qVk+66%omTJG{>4SU<^b-ih*9)%?KMuPr9&6 zIZB<~6E4|L z!b|6kvEDd}jY^Q2{w^bqE>WyKmG%h>Nkep~Rr_95uiMtZ*;8IiR#Au+dKZBQ4)+oxA zh9I`%w`etqf)vf;kO*lfD=0B+>rjtXnM+C%#iVUhWT)ZL*#QyabWE{jhUt@S=0p_N z+zlXSZ+nuqXJl)fJ)KbpD_%f(vtw1Tp$i8lJ}?)>*lYPn6y?4B*{WN8PRCLnkAm9Y z5tt9%rr{@9H9zKhM0MDz8$I`b^HXIQ<6(J1`W{#Esp7=mfU1$aKMWVZbE^Jao*Z)D~!w zLgGww5EsasXA-nF0%j8wn*di5>;oU5IhTOZeh;<6vjmnR+a4xZfKX(7t?p#-OTYD8 zurO>}1iCKOh_hk-nd-HJVAf%MPOZ=SdSpyQDOd`3L-38V~2es^v?rY2`(YHj9~O3fbj%p5u8WxKEcNXZHEEo6WrAS_zA&5hXW2FxQXCa zf>~bx%pv$T!8HUeM*yY~totXxdV-G#hA#s2EC%!uJpV<&9|_Js7OH+4lLSBR1pJg>+e*M~1m9T&xRzk^mjIU#oUa4x|nf{zG>p9shk3=+IS@D@S*BtVkjsda$g60H3S;41{bAb5)4=#v4*5!^#? zKf#Vu0B;k}Ed)21fNcan?*sgb;KLMPSU+HE7H}g$R}Roi z@OlC8Cc(!W03%KZOx_5XN^r&309O;-{B^)~g2iV8mJ;O71q>40dLG~og1t8Z<`7)E z8E`ql;6;El2@by$u$W**5fC9rUk1n#eDhxc=MlVg1>iM;1>Xi7M$m8-U@XCpt_J*s zAo5+nz62w$1&k(m_By}|1gp0K))72-J>W5dU)~6KnjpRnU=kE=0eqcc%67mEg6+2h z?j*?H0T?8>@jn4K6P)xTG~5{283uD$XGNix=g8b+TR{>HeA;y%ety6*wqn6XYPNqV z0_#CGKVN7CWRSqJ9bbgU#UsasS#dn6+duj#7ckp27p&Wpb}BXnKZHoC<%!j{q(7No z0tYdx!Lg8xBApIv0^x_F1s<7@mXC5QRpyb1LK!_k#hPJ$0xC)Tp|H~%jLS{X%qd;- z7=kSX4j1$@}B;X;J`Ho$rf)ooKNrp!6yW#Jr3AFaNW-VHxL~BOTeK7+X!wWnEeEx zjo>>3*AndZBw#whW`auye)SaK8G^#E0be6{;c37t1SdTMIECPo-vdTI2Wa^NU>d=Q z=K)Ow|Mddkd4dyO1gs-i@)F=!f`eZM97-_zkAOCU-ChAqCm8uEU^Kyp1jAkf4F40L zk>K1v12z$SL@@kyK%QWb;0=Pe2;zSMBnh4)c!}V+HvlUMez61a6v5GN0*)iNhv0sK zg?|Nf5Ey?0m;`&i1DHubcjlOMr;bTSdzy6gr%9i|ne>^QNxN=L+LdF@o(Cw?ImK#j zs4J+Z_b@pTn#%jTe8}E5oO#~PPDC#rAZ?d=bxED3(7@ol_(bJf`g$CZ_>u$kwO}# zd=vq*QUNX&coy=Grc_H3a!yI2fw@{z!JN|Lk*N}crB_jMP3ek`G_z3(6#8#VlcOWi z8!~F5GnE-8b{#Iyt%l39>&4|hlU-asho3^Ts91)xo7O~D(3Ogh@>jPRnOx;0C`FuUo_X@lHLq8x!kWB zE@#(^OLFHbTt2bC!=>%$9ZGV!xEd~xtclA8*~fdZ4pX>1bH2kRy@6bg3c+R1s!T4I zgy%iNc2YnSj~iLi&*$Nk=u9M+z`Z9C`?Cxdq`i3!c0$okvPcrgsN`Tx!e)zDc97ea zx{U4^9WI^B&&fq{A_YgUPwc$xUOwweHAA@yIHj6a`f}J-8g4I}N73gCj;&N_r^9lt zcKRUev=hADHd^jq^I)L5`wXt|hHC$d&FD|!(JZ1d2 z<^qRHdNb6xyrmj0x7CZw*_&KkPTcHpNpFT4mycG%Lb@y0~0&y~8EF8ERZEtcJ^jYT{B^>pyv;i_4d9a=4^7;BrW<^;cEHQIAi^jmPKiMhw#wH#u7T8kq{Y?QAh3Au_qzZx#j zsfkNv4LNPQOD+$%-QkknKra7(t&guJW|-Gi(@NhB+e-FY-^@a%us882tyFebRG5)? z+FI!sb9?_kP#l23I^Z%KTuh)>F}A1orib>hZ9 z#j-~q_hfKRGFbvEwefZBjEn-Udv90MFnJR*UngsC#<~?S3+8XOLlyb%L-D_Qpc; bQ-wHvAlOUa>NUsd%U1CbDCs7JuJ->0-7O`M literal 279143 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 diff --git a/graphdoc/docs/_build/doctrees/source/graphdoc.doctree b/graphdoc/docs/_build/doctrees/source/graphdoc.doctree index d715a988c11b0003d0d1d546b37079db92c0ceff..aa86eba0971f3b5b580d15ee5776d2a27a6bb11a 100644 GIT binary patch literal 1034921 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∾3(NHM8=1{WrdV&NI&}%`0 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 AhX4Qo literal 154542 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 Pu!Jsa=G~ diff --git a/graphdoc/docs/_build/doctrees/source/graphdoc.prompts.doctree b/graphdoc/docs/_build/doctrees/source/graphdoc.prompts.doctree index 881880c2ffca68496fa8a2db02bcc5fa5c4bce40..9029bde3e1aa4163878e882d6a867e61f0a86001 100644 GIT binary patch literal 465284 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 + + + + + graphdoc.config — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +

+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for graphdoc.config

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+
+import logging
+
+# system packages
+import random
+from pathlib import Path
+from typing import List, Optional, Union
+
+# external packages
+import dspy
+
+# internal packages
+from graphdoc.data import (
+    DspyDataHelper,
+    GenerationDataHelper,
+    LocalDataHelper,
+    MlflowDataHelper,
+    QualityDataHelper,
+    load_yaml_config,
+)
+from graphdoc.eval import DocGeneratorEvaluator
+from graphdoc.modules import DocGeneratorModule
+from graphdoc.prompts import DocGeneratorPrompt, PromptFactory, SinglePrompt
+from graphdoc.train import SinglePromptTrainer, TrainerFactory
+
+# logging
+log = logging.getLogger(__name__)
+
+#######################
+# Resource Setup      #
+#######################
+
+
+
+[docs] +def mlflow_data_helper_from_dict(mlflow_config: dict) -> MlflowDataHelper: + """ + Load a mlflow data helper from a dictionary of parameters. + + :param mlflow_config: Dictionary containing mlflow parameters. + :type mlflow_config: dict + + .. code-block:: json + { + "mlflow_tracking_uri": "http://localhost:5000", + "mlflow_tracking_username": "admin", + "mlflow_tracking_password": "password" + } + """ + return MlflowDataHelper( + mlflow_tracking_uri=mlflow_config["mlflow_tracking_uri"], + mlflow_tracking_username=mlflow_config["mlflow_tracking_username"], + mlflow_tracking_password=mlflow_config["mlflow_tracking_password"], + )
+ + + +
+[docs] +def mlflow_data_helper_from_yaml(yaml_path: Union[str, Path]) -> MlflowDataHelper: + """ + Load a mlflow data helper from a YAML file. + + :param yaml_path: Path to the YAML file. + :type yaml_path: Union[str, Path] + + .. code-block:: yaml + mlflow: + mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow + mlflow_tracking_username: !env MLFLOW_TRACKING_USERNAME # The username for the mlflow tracking server + mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server + """ + config = load_yaml_config(yaml_path) + return mlflow_data_helper_from_dict( + config["mlflow"], + )
+ + + +####################### +# Data Methods # +####################### +
+[docs] +def trainset_from_dict(trainset_dict: dict) -> List[dspy.Example]: + """ + Load a trainset from a dictionary of parameters. + + .. code-block:: yaml + { + "hf_api_key": !env HF_DATASET_KEY, # Must be a valid Hugging + # Face API key + # (with permission to + # access graphdoc) + # TODO: we may make + # this public in the future + "load_from_hf": false, # Whether to load the dataset + # from Hugging Face + "load_from_local": true, # Whether to load the dataset + # from a local directory + "load_local_specific_category": false, # Whether to load all categories + # or a specific category + "local_specific_category": perfect, # The specific category + # (if load_from_local is true) + "local_parse_objects": true, # Whether to parse the objects + # in the dataset + # (if load_from_local is true) + "split_for_eval": true, # Whether to split the dataset + # into trainset and evalset + "trainset_size": 1000, # The size of the trainset + "evalset_ratio": 0.1, # The proportionate size of evalset + "data_helper_type": "quality" # Type of data helper to use + # (quality, generation) + } + + :param trainset_dict: Dictionary containing trainset parameters. + :type trainset_dict: dict + :return: A trainset. + :rtype: List[dspy.Example] + """ + # TODO: refactor to enable the passing of alternative schema_directory_path, + # and the related enums that must be passed in turn + ldh = LocalDataHelper() + + if trainset_dict["data_helper_type"] == "quality": + dh = QualityDataHelper() + elif trainset_dict["data_helper_type"] == "generation": + dh = GenerationDataHelper() + else: + raise ValueError( + f"Invalid data helper type: {trainset_dict['data_helper_type']}" + ) + + # TODO: refactor to be more ergonomic once we have more data sources implemented + if trainset_dict["load_from_hf"]: + raise NotImplementedError("loading from Hugging Face is not implemented") + if trainset_dict["load_from_local"]: + if trainset_dict["load_local_specific_category"]: + raise NotImplementedError("loading a specific category is not implemented") + dataset = ldh.folder_of_folders_to_dataset( + parse_objects=trainset_dict["local_parse_objects"] + ) + trainset = dh.trainset(dataset) + if trainset_dict["trainset_size"] and isinstance( + trainset_dict["trainset_size"], int + ): + trainset = trainset[: trainset_dict["trainset_size"]] + return trainset + else: + raise ValueError( + "Current implementation only supports loading from local directory" + )
+ + + +
+[docs] +def trainset_from_yaml(yaml_path: Union[str, Path]) -> List[dspy.Example]: + """Load a trainset from a YAML file. + + .. code-block:: yaml + data: + hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key + # (with permission to access graphdoc) + # TODO: we may make this public + load_from_hf: false # Load the dataset from Hugging Face + load_from_local: true # Load the dataset from a local directory + load_local_specific_category: false # Load all categories or a specific category + # (if load_from_local is true) + local_specific_category: perfect, # Which category to load from the dataset + # (if load_from_local is true) + local_parse_objects: true, # Whether to parse the objects + # in the dataset + # (if load_from_local is true) + split_for_eval: true, # Whether to split the dataset + # into trainset and evalset + trainset_size: 1000, # The size of the trainset + evalset_ratio: 0.1, # The proportionate size of evalset + data_helper_type: quality # Type of data helper to use + # (quality, generation) + + :param yaml_path: Path to the YAML file. + :type yaml_path: Union[str, Path] + :return: A trainset. + :rtype: List[dspy.Example] + + """ + config = load_yaml_config(yaml_path) + trainset = trainset_from_dict(config["data"]) + return trainset
+ + + +
+[docs] +def split_trainset( + trainset: List[dspy.Example], + evalset_ratio: float, + seed: int = 42, +) -> tuple[List[dspy.Example], List[dspy.Example]]: + """Split a trainset into a trainset and evalset. + + :param trainset: The trainset to split. :type trainset: List[dspy.Example] + :param evalset_ratio: The proportionate size of the evalset. :type + evalset_ratio: float :return: A tuple of trainset and evalset. :rtype: + tuple[List[dspy.Example], List[dspy.Example]] + + """ + random.seed(seed) + split_idx = int(len(trainset) * (1 - evalset_ratio)) + random.shuffle(trainset) + evalset = trainset[split_idx:] + trainset = trainset[:split_idx] + return trainset, evalset
+ + + +
+[docs] +def trainset_and_evalset_from_yaml( + yaml_path: Union[str, Path] +) -> tuple[List[dspy.Example], List[dspy.Example]]: + """Load a trainset and evalset from a YAML file. + + .. code-block:: yaml + data: + hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key + # (with permission to access graphdoc) + # TODO: we may make this public + load_from_hf: false # Load the dataset from Hugging Face + load_from_local: true # Load the dataset from a local directory + load_local_specific_category: false # Load all categories or a specific category + # (if load_from_local is true) + local_specific_category: perfect, # Which category to load from the dataset + # (if load_from_local is true) + local_parse_objects: true, # Whether to parse the objects + # in the dataset + # (if load_from_local is true) + split_for_eval: true, # Whether to split the dataset + # into trainset and evalset + trainset_size: 1000, # The size of the trainset + evalset_ratio: 0.1, # The proportionate size of evalset + data_helper_type: quality # Type of data helper to use + # (quality, generation) + seed: 42 # The seed for the random number generator + + :param yaml_path: Path to the YAML file. + :type yaml_path: Union[str, Path] + :return: A tuple of trainset and evalset. + :rtype: tuple[List[dspy.Example], List[dspy.Example]] + + """ + config = load_yaml_config(yaml_path) + trainset = trainset_from_dict(config["data"]) + return split_trainset( + trainset, config["data"]["evalset_ratio"], config["data"]["seed"] + )
+ + + +####################### +# Prompt Methods # +####################### +
+[docs] +def single_prompt_from_dict( + prompt_dict: dict, + prompt_metric: Union[str, SinglePrompt], + mlflow_dict: Optional[dict] = None, +) -> SinglePrompt: + """ + Load a single prompt from a dictionary of parameters. + + .. code-block:: json + { + "prompt": "doc_quality", # Which prompt signature to use + "class": "SchemaDocQualityPrompt", # Must be a child of SinglePrompt + "type": "predict", # The type of prompt to use + # (predict, chain_of_thought) + "metric": "rating", # The type of metric to use + # (rating, category) + "load_from_mlflow": false, # Whether to load the prompt from an MLFlow URI + "model_uri": null, # The tracking URI for MLflow + "model_name": null, # The name of the model in MLflow + "model_version": null # The version of the model in MLflow + "prompt_metric": False # Whether another prompt is used + # to calculate the metric + # (in which case we must also load that prompt) + } + + :param prompt_dict: Dictionary containing prompt information. + :type prompt_dict: dict + :param prompt_metric: The metric to use to calculate the metric. + Can be another prompt signature or a string. + :type prompt_metric: Union[str, SinglePrompt] + :return: A SinglePrompt object. + :rtype: SinglePrompt + """ + try: + # if we are loading from mlflow, modify the prompt_dict with the loaded model + if prompt_dict["load_from_mlflow"]: + if mlflow_dict: + log.info(f"Loading prompt from MLflow: {prompt_dict}") + mdh = mlflow_data_helper_from_dict(mlflow_dict) + prompt = mdh.model_by_args(prompt_dict) + log.info(f"Prompt loaded from MLflow: {prompt}") + prompt_signature = DspyDataHelper.prompt_signature(prompt) + prompt_dict["prompt"] = prompt_signature + else: + raise ValueError("MLflow tracking dict not provided") + + return PromptFactory.single_prompt( + prompt=prompt_dict["prompt"], + prompt_class=prompt_dict["class"], + prompt_type=prompt_dict["type"], + prompt_metric=prompt_metric, + ) + except Exception as e: + log.error(f"Error creating single prompt: {e}") + raise e
+ + + +
+[docs] +def single_prompt_from_yaml(yaml_path: Union[str, Path]) -> SinglePrompt: + """Load a single prompt from a YAML file. + + .. code-block:: yaml + prompt: + prompt: base_doc_gen # Which prompt signature to use + class: DocGeneratorPrompt # Must be a child of SinglePrompt + # (we will use an enum to map this) + type: chain_of_thought # The type of prompt to use + # (predict, chain_of_thought) + metric: rating # The type of metric to use + # (rating, category) + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + prompt_metric: true # Whether another prompt is used + # to calculate the metric + # (in which case we must also load that prompt) + + prompt_metric: + prompt: doc_quality # The prompt to use to calculate + # the metric + class: DocQualityPrompt # The class of the prompt to use + # to calculate the metric + type: predict # The type of prompt to use + # to calculate the metric + metric: rating # The metric to use to calculate + # the metric + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI + + :param yaml_path: Path to the YAML file. + :type yaml_path: str + :return: A SinglePrompt object. + :rtype: SinglePrompt + + """ + config = load_yaml_config(yaml_path) + mlflow_config = config.get("mlflow", None) + if config["prompt"]["prompt_metric"]: + prompt_metric_config = config["prompt_metric"] + prompt_metric_metric = prompt_metric_config["metric"] + prompt_metric = single_prompt_from_dict( + prompt_metric_config, prompt_metric_metric, mlflow_config + ) + else: + prompt_metric = config["prompt"]["metric"] + prompt = single_prompt_from_dict(config["prompt"], prompt_metric, mlflow_config) + return prompt
+ + + +####################### +# Trainer Methods # +####################### +
+[docs] +def single_trainer_from_dict( + trainer_dict: dict, + prompt: SinglePrompt, + trainset: Optional[List[dspy.Example]] = None, + evalset: Optional[List[dspy.Example]] = None, +) -> SinglePromptTrainer: + """ + Load a single trainer from a dictionary of parameters. + + .. code-block:: json + { + "trainer": { + "class": "DocQualityTrainer", + "mlflow_model_name": "doc_quality_model", + "mlflow_experiment_name": "doc_quality_experiment", + "mlflow_tracking_uri": "http://localhost:5000" + }, + "optimizer": { + "optimizer_type": "miprov2", + "auto": "light", + "max_labeled_demos": 2, + "max_bootstrapped_demos": 4, + "num_trials": 2, + "minibatch": true + }, + } + + :param trainer_dict: Dictionary containing trainer parameters. + :type trainer_dict: dict + :param prompt: The prompt to use for this trainer. + :type prompt: SinglePrompt + :return: A SinglePromptTrainer object. + :rtype: SinglePromptTrainer + """ + if trainset is None: + trainset = [] + if evalset is None: + evalset = [] + try: + return TrainerFactory.single_trainer( + trainer_class=trainer_dict["trainer"]["class"], + prompt=prompt, + optimizer_type=trainer_dict["optimizer"]["optimizer_type"], + optimizer_kwargs=trainer_dict["optimizer"], + mlflow_model_name=trainer_dict["trainer"]["mlflow_model_name"], + mlflow_experiment_name=trainer_dict["trainer"]["mlflow_experiment_name"], + mlflow_tracking_uri=trainer_dict["trainer"]["mlflow_tracking_uri"], + trainset=trainset, + evalset=evalset, + ) + except Exception as e: + log.error(f"Error creating single trainer: {e}") + raise e
+ + + +
+[docs] +def single_trainer_from_yaml(yaml_path: Union[str, Path]) -> SinglePromptTrainer: + """Load a single prompt trainer from a YAML file. + + .. code-block:: yaml + trainer: + hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key + # (with permission to access graphdoc) + # TODO: we may make this public + load_from_hf: false # Load the dataset from Hugging Face + load_from_local: true # Load the dataset from a local directory + load_local_specific_category: false # Load all categories or a specific category + # (if load_from_local is true) + local_specific_category: perfect, # Which category to load from the dataset + # (if load_from_local is true) + local_parse_objects: true, # Whether to parse the objects + # in the dataset + # (if load_from_local is true) + split_for_eval: true, # Whether to split the dataset + # into trainset and evalset + trainset_size: 1000, # The size of the trainset + evalset_ratio: 0.1, # The proportionate size of evalset + + prompt: + prompt: base_doc_gen # Which prompt signature to use + class: DocGeneratorPrompt # Must be a child of SinglePrompt + # (we will use an enum to map this) + type: chain_of_thought # The type of prompt to use + # (predict, chain_of_thought) + metric: rating # The type of metric to use + # (rating, category) + load_from_mlflow: false # L oad the prompt from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + prompt_metric: true # Whether another prompt is used + # to calculate the metric + # (in which case we must load prompt) + + prompt_metric: + prompt: doc_quality # The prompt to use to calculate the metric + class: DocQualityPrompt # The class of the prompt to use + # to calculate the metric + type: predict # The type of prompt to use + # to calculate the metric + metric: rating # The metric to use to calculate + # the metric + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + + :param yaml_path: Path to the YAML file. + :type yaml_path: Union[str, Path] + :return: A SinglePromptTrainer object. + :rtype: SinglePromptTrainer + + """ + try: + config = load_yaml_config(yaml_path) + prompt = single_prompt_from_yaml(yaml_path) + trainset, evalset = trainset_and_evalset_from_yaml(yaml_path) + return single_trainer_from_dict(config, prompt, trainset, evalset) + except Exception as e: + log.error(f"Error creating trainer from YAML: {e}") + raise e
+ + + +####################### +# Module Methods # +####################### +
+[docs] +def doc_generator_module_from_dict( + module_dict: dict, prompt: Union[DocGeneratorPrompt, SinglePrompt] +) -> DocGeneratorModule: + """ + Load a doc generator module from a dictionary of parameters. + + .. code-block:: json + { + "retry": true, + "retry_limit": 1, + "rating_threshold": 3, + "fill_empty_descriptions": true + } + + :param module_dict: Dictionary containing module parameters. + :type module_dict: dict + :param prompt: The prompt to use for this module. + :type prompt: DocGeneratorPrompt + :return: A DocGeneratorModule object. + :rtype: DocGeneratorModule + """ + return DocGeneratorModule( + prompt=prompt, + retry=module_dict["retry"], + retry_limit=module_dict["retry_limit"], + rating_threshold=module_dict["rating_threshold"], + fill_empty_descriptions=module_dict["fill_empty_descriptions"], + )
+ + + +
+[docs] +def doc_generator_module_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorModule: + """Load a doc generator module from a YAML file. + + .. code-block:: yaml + prompt: + prompt: base_doc_gen # Which prompt signature to use + class: DocGeneratorPrompt # Must be a child of SinglePrompt + # (we will use an enum to map this) + type: chain_of_thought # The type of prompt to use + # (predict, chain_of_thought) + metric: rating # The type of metric to use + # (rating, category) + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + prompt_metric: true # Whether another prompt is used + # to calculate the metric + # (in which case we must load that prompt) + + prompt_metric: + prompt: doc_quality # The prompt to use to calculate the metric + class: DocQualityPrompt # The class of the prompt to use + # to calculate the metric + type: predict # The type of prompt to use + # to calculate the metric + metric: rating # The metric to use to calculate the metric + load_from_mlflow: false # Whether to load the prompt + # from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + + module: + retry: true # Whether to retry the generation + # if the quality check fails + retry_limit: 1 # The maximum number of retries + rating_threshold: 3 # The rating threshold for the quality check + fill_empty_descriptions: true # Whether to fill empty descriptions with + # generated documentation + + :param yaml_path: Path to the YAML file. + :type yaml_path: Union[str, Path] + :return: A DocGeneratorModule object. + :rtype: DocGeneratorModule + + """ + config = load_yaml_config(yaml_path)["module"] + prompt = single_prompt_from_yaml(yaml_path) + return doc_generator_module_from_dict(config, prompt)
+ + + +####################### +# Eval Methods # +####################### +
+[docs] +def doc_generator_eval_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorEvaluator: + """Load a doc generator evaluator from a YAML file. + + .. code-block:: yaml + mlflow: + mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow + mlflow_tracking_username: !env MLFLOW_TRACKING_USERNAME # The username for the mlflow tracking server + mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server + + prompt: + prompt: base_doc_gen # Which prompt signature to use + class: DocGeneratorPrompt # Must be a child of SinglePrompt (we will use an enum to map this) + type: chain_of_thought # The type of prompt to use (predict, chain_of_thought) + metric: rating # The type of metric to use (rating, category) + load_from_mlflow: false # Whether to load the prompt from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null # The version of the model in MLflow + prompt_metric: true # Whether another prompt is used to calculate the metric (in which case we must also load that prompt) + + prompt_metric: + prompt: doc_quality # The prompt to use to calculate the metric + class: DocQualityPrompt # The class of the prompt to use to calculate the metric + type: predict # The type of prompt to use to calculate the metric + metric: rating # The metric to use to calculate the metric + load_from_mlflow: false # Whether to load the prompt from an MLFlow URI + model_uri: null # The tracking URI for MLflow + model_name: null # The name of the model in MLflow + model_version: null + + module: + retry: true # Whether to retry the generation if the quality check fails + retry_limit: 1 # The maximum number of retries + rating_threshold: 3 # The rating threshold for the quality check + fill_empty_descriptions: true # Whether to fill the empty descriptions in the schema + + eval: + mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow + mlflow_experiment_name: doc_generator_eval # The name of the experiment in MLflow + generator_prediction_field: documented_schema # The field in the generator prediction to use + evaluator_prediction_field: rating # The field in the evaluator prediction to use + readable_value: 25 + + :param yaml_path: Path to the YAML file. + :type yaml_path: Union[str, Path] + :return: A DocGeneratorEvaluator object. + :rtype: DocGeneratorEvaluator + + """ + # load the generator + generator = doc_generator_module_from_yaml(yaml_path) + config = load_yaml_config(yaml_path) + + # load the evaluator + metric_config = config["prompt_metric"] + evaluator = single_prompt_from_dict(metric_config, metric_config["metric"]) + + # load the eval config + mdh = mlflow_data_helper_from_yaml(yaml_path) # noqa: F841 + mlflow_tracking_uri = config["mlflow"]["mlflow_tracking_uri"] + mlflow_experiment_name = config["eval"]["mlflow_experiment_name"] + generator_prediction_field = config["eval"]["generator_prediction_field"] + evaluator_prediction_field = config["eval"]["evaluator_prediction_field"] + readable_value = config["eval"]["readable_value"] + + # load the evalset + evalset = trainset_from_yaml(yaml_path) + + # return the evaluator + return DocGeneratorEvaluator( + generator=generator, + evaluator=evaluator, + evalset=evalset, + mlflow_tracking_uri=mlflow_tracking_uri, + mlflow_experiment_name=mlflow_experiment_name, + generator_prediction_field=generator_prediction_field, + evaluator_prediction_field=evaluator_prediction_field, + readable_value=readable_value, + )
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/dspy_data_helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/dspy_data_helper.html new file mode 100644 index 0000000..834dd3a --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/dspy_data_helper.html @@ -0,0 +1,303 @@ + + + + + + graphdoc.data.dspy_data.dspy_data_helper — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for graphdoc.data.dspy_data.dspy_data_helper

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
+import logging
+from abc import ABC, abstractmethod
+from functools import singledispatch
+from typing import Any, Optional, Union
+
+# external packages
+import dspy
+from datasets import Dataset
+from mlflow.models import ModelSignature
+
+# internal packages
+
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class DspyDataHelper(ABC): + """Abstract class for creating data objects related to a given dspy.Signature.""" + + ####################### + # Class Methods # + ####################### +
+[docs] + @singledispatch + @staticmethod + def prompt_signature( + prompt: Any, + ) -> Union[dspy.Signature, dspy.SignatureMeta]: + """Given a prompt, return a dspy.Signature object. + + :param prompt: A prompt. + :type prompt: Any + + """ + log.warning("No prompt signature found for the given prompt.") + raise ValueError("No prompt signature found for the given prompt.")
+ + + @prompt_signature.register(dspy.ChainOfThought) + @staticmethod + def _(prompt: dspy.ChainOfThought) -> Union[dspy.Signature, dspy.SignatureMeta]: + """Given a dspy.ChainOfThought object, return a dspy.Signature object.""" + return prompt.predict.signature + +
+[docs] + @prompt_signature.register(dspy.Predict) + @staticmethod + def _(prompt: dspy.Predict) -> Union[dspy.Signature, dspy.SignatureMeta]: + """Given a dspy.Predict object, return a dspy.Signature object.""" + return prompt.signature
+ + +
+[docs] + @staticmethod + def formatted_signature( + signature: Union[dspy.Signature, dspy.SignatureMeta], + example: dspy.Example, + ) -> str: + """Given a dspy.Signature and a dspy.Example, return a formatted signature as a + string. + + :param signature: A dspy.Signature object. + :type signature: dspy.Signature + :param example: A dspy.Example object. + :type example: dspy.Example + :return: A formatted signature as a string. + :rtype: str + + """ + adapter = dspy.ChatAdapter() + prompt = adapter.format( + signature=signature, # type: ignore + # TODO: we should only accept dspy.Signature objects, not dspy.SignatureMeta + demos=[example.toDict()], + inputs=example.toDict(), + ) + return ( + f"------\nSystem\n------\n {prompt[0]['content']} \n" + f"------\nUser\n------\n {prompt[1]['content']}" + )
+ + + ####################### + # Abstract Methods # + ####################### +
+[docs] + @staticmethod + @abstractmethod + def example(inputs: dict[str, Any]) -> dspy.Example: + """Given a dictionary of inputs, return a dspy.Example object. + + :param inputs: A dictionary of inputs. + :type inputs: dict[str, Any] + :return: A dspy.Example object. + :rtype: dspy.Example + + """ + pass
+ + +
+[docs] + @staticmethod + @abstractmethod + def example_example() -> dspy.Example: + """Return an example dspy.Example object with the inputs set to the example + values. + + :return: A dspy.Example object. + :rtype: dspy.Example + + """ + pass
+ + +
+[docs] + @staticmethod + @abstractmethod + def model_signature() -> ModelSignature: + """Return a mlflow.models.ModelSignature object. Based on the example object, + removes the output fields and utilizes the remaining fields to infer the model + signature. + + :return: A mlflow.models.ModelSignature object. + :rtype: mlflow.models.ModelSignature + + """ + # TODO: decide if this should be here or in the mlflow_data_helper + pass
+ + +
+[docs] + @staticmethod + @abstractmethod + def prediction(inputs: dict[str, Any]) -> dspy.Prediction: + """Given a dictionary of inputs, return a dspy.Prediction object. + + :param inputs: A dictionary of inputs. + :type inputs: dict[str, Any] + :return: A dspy.Prediction object. + :rtype: dspy.Prediction + + """ + pass
+ + +
+[docs] + @staticmethod + @abstractmethod + def prediction_example() -> dspy.Prediction: + """Return an example dspy.Prediction object with the inputs set to the example + values. + + :return: A dspy.Prediction object. + :rtype: dspy.Prediction + + """ + pass
+ + +
+[docs] + @staticmethod + @abstractmethod + def trainset( + inputs: Union[dict[str, Any], Dataset], + filter_args: Optional[dict[str, Any]] = None, + ) -> list[dspy.Example]: + """Given a dictionary of inputs or a datasets.Dataset object, return a list of + dspy.Example objects. + + :param inputs: A dictionary of inputs or a datasets.Dataset object. + :type inputs: Union[dict[str, Any], datasets.Dataset] + :param filter_args: A dictionary of filter arguments. These are instructions for + how we will filter and / or transform the inputs. + :type filter_args: Optional[dict[str, Any]] + :return: A list of dspy.Example objects. + :rtype: list[dspy.Example] + + """ + # TODO: we should consider tighter coupling between DspyDataHelper and SchemaObject + # (turning SchemaObject into a base class for all data objects) + # so that we can have guarantees on the formatting and contents of the inputs + pass
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/generation_data_helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/generation_data_helper.html new file mode 100644 index 0000000..c789729 --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/generation_data_helper.html @@ -0,0 +1,222 @@ + + + + + + graphdoc.data.dspy_data.generation_data_helper — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for graphdoc.data.dspy_data.generation_data_helper

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
+import logging
+from typing import Any, Optional, Union
+
+# external packages
+import dspy
+from datasets import Dataset
+from mlflow.models import ModelSignature, infer_signature
+
+# internal packages
+from graphdoc.data.dspy_data.dspy_data_helper import DspyDataHelper
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class GenerationDataHelper(DspyDataHelper): + """A helper class for creating data objects related to our Documentation Generation + dspy.Signature. + + The example signature is defined as: + ``` + database_schema: str = dspy.InputField() + documented_schema: str = dspy.OutputField() + ``` + + """ + +
+[docs] + @staticmethod + def example(inputs: dict[str, Any]) -> dspy.Example: + return dspy.Example( + database_schema=inputs.get("database_schema", ""), + documented_schema=inputs.get("documented_schema", ""), + ).with_inputs("database_schema")
+ + +
+[docs] + @staticmethod + def example_example() -> dspy.Example: + return GenerationDataHelper.example( + { + "database_schema": "test database schema", + "documented_schema": "test documented schema", + } + )
+ + +
+[docs] + @staticmethod + def model_signature() -> ModelSignature: + # TODO: decide if this should be here or in the mlflow_data_helper + example = GenerationDataHelper.example_example().toDict() + example.pop("documented_schema") + return infer_signature(example)
+ + +
+[docs] + @staticmethod + def prediction(inputs: dict[str, Any]) -> dspy.Prediction: + return dspy.Prediction( + database_schema=inputs.get("database_schema", ""), + documented_schema=inputs.get("documented_schema", ""), + )
+ + +
+[docs] + @staticmethod + def prediction_example() -> dspy.Prediction: + return GenerationDataHelper.prediction( + { + "database_schema": "test database schema", + "documented_schema": "test documented schema", + } + )
+ + +
+[docs] + @staticmethod + def trainset( + inputs: Union[dict[str, Any], Dataset], + filter_args: Optional[dict[str, Any]] = None, + ) -> list[dspy.Example]: + if isinstance(inputs, dict): + # TODO: implement this + raise NotImplementedError("from dictionary is not implemented") + if isinstance(inputs, Dataset): + # TODO: here is where we will want to enable post-processing of the inputs + examples = [] + for i in range(len(inputs)): + item = inputs[i] + database_schema = item.get("schema_str", None) + documented_schema = item.get("schema_str", None) + if database_schema is None or documented_schema is None: + raise ValueError( + f"dataset item {i} is missing one or more required fields" + ) + example_dict = { + "database_schema": database_schema, + "documented_schema": documented_schema, + } + examples.append(GenerationDataHelper.example(example_dict)) + return examples + raise ValueError( + f"inputs must be a dictionary or a datasets, not: {type(inputs)}" + )
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/quality_data_helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/quality_data_helper.html new file mode 100644 index 0000000..33ce4b4 --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/quality_data_helper.html @@ -0,0 +1,231 @@ + + + + + + graphdoc.data.dspy_data.quality_data_helper — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for graphdoc.data.dspy_data.quality_data_helper

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
+import logging
+from typing import Any, Optional, Union
+
+# external packages
+import dspy
+from datasets import Dataset
+from mlflow.models import ModelSignature, infer_signature
+
+# internal packages
+from graphdoc.data.dspy_data.dspy_data_helper import DspyDataHelper
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class QualityDataHelper(DspyDataHelper): + """A helper class for creating data objects related to our Documentation Quality + dspy.Signature. + + The example signature is defined as: + ``` + database_schema: str = dspy.InputField() + category: Literal["perfect", "almost perfect", "poor but correct", "incorrect"] = ( + dspy.OutputField() + ) + rating: Literal[4, 3, 2, 1] = dspy.OutputField() + ``` + + """ + +
+[docs] + @staticmethod + def example(inputs: dict[str, Any]) -> dspy.Example: + return dspy.Example( + database_schema=inputs.get("database_schema", ""), + category=inputs.get("category", ""), + rating=inputs.get("rating", 0), + ).with_inputs("database_schema")
+ + +
+[docs] + @staticmethod + def example_example() -> dspy.Example: + return QualityDataHelper.example( + { + "database_schema": "test database schema", + "category": "perfect", + "rating": 4, + } + )
+ + +
+[docs] + @staticmethod + def model_signature() -> ModelSignature: + # TODO: decide if this should be here or in the mlflow_data_helper + example = QualityDataHelper.example_example().toDict() + example.pop("category") + example.pop("rating") + return infer_signature(example)
+ + +
+[docs] + @staticmethod + def prediction(inputs: dict[str, Any]) -> dspy.Prediction: + return dspy.Prediction( + database_schema=inputs.get("database_schema", ""), + category=inputs.get("category", ""), + rating=inputs.get("rating", 0), + )
+ + +
+[docs] + @staticmethod + def prediction_example() -> dspy.Prediction: + return QualityDataHelper.prediction( + { + "database_schema": "test database schema", + "category": "perfect", + "rating": 4, + } + )
+ + +
+[docs] + @staticmethod + def trainset( + inputs: Union[dict[str, Any], Dataset], + filter_args: Optional[dict[str, Any]] = None, + ) -> list[dspy.Example]: + if isinstance(inputs, dict): + # TODO: implement this + raise NotImplementedError("from dictionary is not implemented") + if isinstance(inputs, Dataset): + examples = [] + for i in range(len(inputs)): + item = inputs[i] + database_schema = item.get("schema_str", None) + category = item.get("category", None) + rating = int(item.get("rating", None)) + if database_schema is None or category is None or rating is None: + raise ValueError( + f"dataset item {i} is missing one or more required fields" + ) + example_dict = { + "database_schema": database_schema, + "category": category, + "rating": rating, + } + examples.append(QualityDataHelper.example(example_dict)) + return examples + raise ValueError( + f"inputs must be a dictionary or a datasets, not: {type(inputs)}" + )
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/helper.html index 8cce703..1649c16 100644 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/helper.html +++ b/graphdoc/docs/_build/html/_modules/graphdoc/data/helper.html @@ -71,14 +71,19 @@

Source code for graphdoc.data.helper

-# system packages
-import os
-import yaml
+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
 import logging
+
+# system packages
+import os
 from pathlib import Path
-from yaml import SafeLoader
 from typing import Literal, Union
 
+import yaml
+from yaml import SafeLoader
+
 # internal packages
 
 # external packages
@@ -88,16 +93,16 @@ 

Source code for graphdoc.data.helper

 
 
 
-[docs] +[docs] def check_directory_path(directory_path: Union[str, Path]) -> None: - """ - Check if the provided path resolves to a valid directory. + """Check if the provided path resolves to a valid directory. :param directory_path: The path to check. :type directory_path: Union[str, Path] :raises ValueError: If the path does not resolve to a valid directory. :return: None :rtype: None + """ _directory_path = Path(directory_path).resolve() if not _directory_path.is_dir(): @@ -108,16 +113,13 @@

Source code for graphdoc.data.helper

 
 
 
-[docs] +[docs] def check_file_path(file_path: Union[str, Path]) -> None: - """ - Check if the provided path resolves to a valid file. + """Check if the provided path resolves to a valid file. + + :param file_path: The path to check. :type file_path: Union[str, Path] :raises + ValueError: If the path does not resolve to a valid file. :return: None :rtype: None - :param file_path: The path to check. - :type file_path: Union[str, Path] - :raises ValueError: If the path does not resolve to a valid file. - :return: None - :rtype: None """ _file_path = Path(file_path).resolve() if not _file_path.is_file(): @@ -128,10 +130,9 @@

Source code for graphdoc.data.helper

 
 
 
-[docs] +[docs] def _env_constructor(loader: SafeLoader, node: yaml.nodes.ScalarNode) -> str: - """ - Custom constructor for environment variables. + """Custom constructor for environment variables. :param loader: The YAML loader. :type loader: yaml.SafeLoader @@ -140,6 +141,7 @@

Source code for graphdoc.data.helper

     :return: The environment variable value.
     :rtype: str
     :raises ValueError: If the environment variable is not set.
+
     """
     value = loader.construct_scalar(node)
     env_value = os.getenv(value)
@@ -150,10 +152,9 @@ 

Source code for graphdoc.data.helper

 
 
 
-[docs] +[docs] def load_yaml_config(file_path: Union[str, Path], use_env: bool = True) -> dict: - """ - Load a YAML configuration file. + """Load a YAML configuration file. :param file_path: The path to the YAML file. :type file_path: Union[str, Path] @@ -161,7 +162,9 @@

Source code for graphdoc.data.helper

     :type use_env: bool
     :return: The YAML configuration.
     :rtype: dict
-    :raises ValueError: If the path does not resolve to a valid file or the environment variable is not set.
+    :raises ValueError: If the path does not resolve to a valid file or the environment
+        variable is not set.
+
     """
     if use_env:
         SafeLoader.add_constructor("!env", _env_constructor)
@@ -177,15 +180,15 @@ 

Source code for graphdoc.data.helper

 
 
 
-[docs] +[docs] def setup_logging( log_level: Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], ): - """ - Setup logging for the application. + """Setup logging for the application. :param log_level: The log level. :type log_level: Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] + """ root_logger = logging.getLogger() root_logger.handlers.clear() diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/local.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/local.html index 510a92b..3ca4915 100644 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/local.html +++ b/graphdoc/docs/_build/html/_modules/graphdoc/data/local.html @@ -71,102 +71,85 @@

Source code for graphdoc.data.local

-# this file is for loading data from a local directory
+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
 
 # system packages
 import logging
 from enum import Enum
 from pathlib import Path
-from typing import Optional, Union, Type, Callable, Dict
+from typing import Callable, Dict, Optional, Type, Union
+
+# external packages
+from datasets import Dataset, concatenate_datasets
 
 # internal packages
-from .helper import check_directory_path, check_file_path
-from .schema import (
+from graphdoc.data.helper import check_directory_path, check_file_path
+from graphdoc.data.parser import Parser
+from graphdoc.data.schema import (
+    SchemaCategory,
+    SchemaCategoryPath,
     SchemaCategoryRatingMapping,
     SchemaObject,
-    SchemaCategory,
     SchemaRating,
-    SchemaCategoryPath,
 )
-from .parser import Parser
-
-# external packages
-from datasets import Dataset, concatenate_datasets
 
 # logging
 log = logging.getLogger(__name__)
 
 
-# TODO: we can make this a base class to enable better separation of our enum values and set up a factory pattern so that everything can be defined at the config level
+# TODO: we can make this a base class to enable better separation of our enum values
+# and set up a factory pattern so that everything can be defined at the config level
 # check out how pytorch etc. handles loading in something like imagenet
 
-[docs] +[docs] class LocalDataHelper: - """ - A helper class for loading data from a directory. + """A helper class for loading data from a directory. :param schema_directory_path: The path to the directory containing the schemas - :type schema_directory_path: Union[str, Path]. Defaults to the path to the schemas in the graphdoc package. + :type schema_directory_path: Union[str, Path] Defaults to the path to the schemas in + the graphdoc package. :param categories: The categories of the schemas. Defaults to SchemaCategory. :type categories: Type[Enum] :param ratings: The ratings of the schemas. Defaults to SchemaRating. :type ratings: Type[Enum] - :param categories_ratings: A callable that maps categories to ratings. Defaults to SchemaCategoryRatingMapping.get_rating. + :param categories_ratings: A callable that maps categories to ratings. Defaults to + SchemaCategoryRatingMapping.get_rating. + """ def __init__( self, - schema_directory_path: Union[str, Path] = Path(__file__).parent - / "assets" - / "schemas", + schema_directory_path: Optional[Union[str, Path]] = None, categories: Type[Enum] = SchemaCategory, ratings: Type[Enum] = SchemaRating, categories_ratings: Callable = SchemaCategoryRatingMapping.get_rating, # TODO: potentially add a category_path object here (defaulting to SchemaCategoryPath) ): - if schema_directory_path: - check_directory_path(schema_directory_path) - self.schema_directory_path = schema_directory_path - self.package_directory_path = False - else: - check_directory_path(self.schema_directory_path) + if schema_directory_path is None: + schema_directory_path = Path(__file__).parent / "assets" / "schemas" self.package_directory_path = True + else: + self.package_directory_path = False + check_directory_path(schema_directory_path) + self.schema_directory_path = schema_directory_path self.categories = categories self.ratings = ratings self.categories_ratings = categories_ratings - # def _categories # we will get rid of this - - # def _blank_schema_folder(self) -> Path: # we will get rid of this - - # def _folder_paths(self) -> dict: # we will get rid of this - - # def _category_ratings(self) -> dict: # we will get rid of this - - # def _check_category_validity(self, category: str) -> bool: # we will get rid of this - - # def _check_node_type(self, node: Node) -> str: # this is now in the parser.py file - - # def _parse_objects_from_full_schema_object(self, schema: SchemaObject) -> dict[str, SchemaObject]: # this is now in the parser.py file - - # def schemas_folder
-[docs] +[docs] def schema_objects_from_folder( self, category: str, rating: int, folder_path: Union[str, Path] ) -> dict[str, SchemaObject]: - """ - Load schemas from a folder, keeping the difficulty tag. - - :param folder_path: The path to the folder containing the schemas - :type folder_path: Union[str, Path] - :param category: The category of the schemas - :type category: str - :param rating: The rating of the schemas - :type rating: int - :return: A dictionary of schemas - :rtype: dict[str, SchemaObject] + """Load schemas from a folder, keeping the difficulty tag. + + :param folder_path: The path to the folder containing the schemas :type + folder_path: Union[str, Path] :param category: The category of the schemas :type + category: str :param rating: The rating of the schemas :type rating: int + :return: A dictionary of schemas :rtype: dict[str, SchemaObject] + """ check_directory_path(folder_path) schemas = {} @@ -184,18 +167,19 @@

Source code for graphdoc.data.local

 
 
 
-[docs] +[docs] def schema_objects_from_folder_of_folders( self, folder_paths: Optional[Type[Enum]] = SchemaCategoryPath, ) -> Union[Dict[str, SchemaObject], None]: - """ - Load a folder of folders containing schemas, keeping the difficulty tag. + """Load a folder of folders containing schemas, keeping the difficulty tag. - :param folder_paths: Enum class defining folder paths, defaults to SchemaCategoryPath. Must have a get_path method. + :param folder_paths: Enum class defining folder paths, defaults to + SchemaCategoryPath. Must have a get_path method. :type folder_paths: Optional[Type[Enum]] :return: Dictionary of loaded schemas :rtype: Union[Dict[str, SchemaObject], None] + """ schemas = {} @@ -208,9 +192,13 @@

Source code for graphdoc.data.local

                 # get path using provided folder_paths enum
                 if not hasattr(folder_paths, "get_path"):
                     raise AttributeError(
-                        f"folder_paths enum must have a get_path method. Received: {folder_paths}"
+                        f"folder_paths enum must have a get_path method. "
+                        f"Received: {folder_paths}"
                     )
-                path = folder_paths.get_path(category_enum, self.schema_directory_path)  # type: ignore # since we know that the enum has a get_path method
+                # since we know that the enum has a get_path method
+                path = folder_paths.get_path(  # type: ignore
+                    category_enum, self.schema_directory_path
+                )
                 if not path:
                     log.warning(f"No path found for category: {category}")
                     continue
@@ -232,7 +220,7 @@ 

Source code for graphdoc.data.local

 
 
 
-[docs] +[docs] def folder_to_dataset( self, category: str, @@ -240,17 +228,14 @@

Source code for graphdoc.data.local

         parse_objects: bool = True,
         type_mapping: Optional[dict[type, str]] = None,
     ) -> Dataset:
-        """
-        Load a folder of schemas, keeping the difficulty tag.
-
-        :param category: The category of the schemas
-        :type category: str
-        :param folder_path: The path to the folder containing the schemas
-        :type folder_path: Union[str, Path]
-        :param parse_objects: Whether to parse the objects from the schemas
-        :type parse_objects: bool
-        :param type_mapping: A dictionary mapping types to strings
-        :type type_mapping: Optional[dict[type, str]]
+        """Load a folder of schemas, keeping the difficulty tag.
+
+        :param category: The category of the schemas :type category: str :param
+        folder_path: The path to the folder containing the schemas :type folder_path:
+        Union[str, Path] :param parse_objects: Whether to parse the objects from the
+        schemas :type parse_objects: bool :param type_mapping: A dictionary mapping
+        types to strings :type type_mapping: Optional[dict[type, str]]
+
         """
         objects = []
         rating = self.categories_ratings(self.categories(category))
@@ -274,21 +259,21 @@ 

Source code for graphdoc.data.local

 
 
 
-[docs] +[docs] def folder_of_folders_to_dataset( self, folder_paths: Type[Enum] = SchemaCategoryPath, parse_objects: bool = True, type_mapping: Optional[dict[type, str]] = None, ) -> Dataset: - """ - Load a folder of folders containing schemas, keeping the difficulty tag. - - :param folder_paths: Enum class defining folder paths, defaults to SchemaCategoryPath. Must have a get_path method. - :type folder_paths: Type[Enum] - :param parse_objects: Whether to parse the objects from the schemas - :type parse_objects: bool - :param type_mapping: A dictionary mapping graphql-ast node values to strings + """Load a folder of folders containing schemas, keeping the difficulty tag. + + :param folder_paths: Enum class defining folder paths, defaults to + SchemaCategoryPath. Must have a get_path method. :type folder_paths: Type[Enum] + :param parse_objects: Whether to parse the objects from the schemas :type + parse_objects: bool :param type_mapping: A dictionary mapping graphql-ast node + values to strings + """ schema_objects = self.schema_objects_from_folder_of_folders( folder_paths=folder_paths @@ -334,14 +319,6 @@

Source code for graphdoc.data.local

     # def _create_repo_card # we should move this to a huggingface file
 
     # def _create_and_upload_repo_card # we should move this to a huggingface file
-
-    # def _create_graph_doc_example_trainset # we should move this to a dspy file
-
-    # def _create_doc_generator_example_trainset # we should move this to a dspy file
-
-    # def create_graph_doc_example_trainset # we should move this to a dspy file
-
-    # def blank_trainset # we should move this to a dspy file
 
diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/mlflow_data/mlflow_data_helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/mlflow_data/mlflow_data_helper.html new file mode 100644 index 0000000..050dc83 --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/data/mlflow_data/mlflow_data_helper.html @@ -0,0 +1,307 @@ + + + + + + graphdoc.data.mlflow_data.mlflow_data_helper — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for graphdoc.data.mlflow_data.mlflow_data_helper

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+import ast
+import logging
+
+# system packages
+import os
+from pathlib import Path
+from typing import Any, Dict, Optional, Union
+
+# external packages
+import dspy
+import mlflow
+from mlflow.models import ModelSignature
+
+# internal packages
+
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class MlflowDataHelper: +
+[docs] + def __init__( + self, + mlflow_tracking_uri: Union[str, Path], + mlflow_tracking_username: Optional[str] = None, + mlflow_tracking_password: Optional[str] = None, + ): + """A helper class for loading and saving models and metadata from mlflow. + + :param mlflow_tracking_uri: The uri of the mlflow tracking server. :type + mlflow_tracking_uri: Union[str, Path] :param mlflow_tracking_username: The + username for the mlflow tracking server. :type mlflow_tracking_username: str + :param mlflow_tracking_password: The password for the mlflow tracking server. + :type mlflow_tracking_password: str + + """ + self.mlflow_tracking_uri = mlflow_tracking_uri + mlflow.set_tracking_uri(str(mlflow_tracking_uri)) + self.mlflow_client = mlflow.MlflowClient( + tracking_uri=str(self.mlflow_tracking_uri) + ) + if mlflow_tracking_username: + self.mlflow_tracking_username = mlflow_tracking_username + os.environ["MLFLOW_TRACKING_USERNAME"] = mlflow_tracking_username + if mlflow_tracking_password: + self.mlflow_tracking_password = mlflow_tracking_password + os.environ["MLFLOW_TRACKING_PASSWORD"] = mlflow_tracking_password
+ + + ######################### + # Auth Methods # + ######################### +
+[docs] + def update_auth_env_vars( + self, mlflow_tracking_username: str, mlflow_tracking_password: str + ): + """Update the authentication environment variables. + + :param mlflow_tracking_username: The username for the mlflow tracking server. + :type mlflow_tracking_username: str + :param mlflow_tracking_password: The password for the mlflow tracking server. + :type mlflow_tracking_password: str + + """ + os.environ["MLFLOW_TRACKING_USERNAME"] = mlflow_tracking_username + os.environ["MLFLOW_TRACKING_PASSWORD"] = mlflow_tracking_password
+ + +
+[docs] + def set_auth_env_vars(self): + """Set the authentication environment variables.""" + os.environ["MLFLOW_TRACKING_USERNAME"] = self.mlflow_tracking_username + os.environ["MLFLOW_TRACKING_PASSWORD"] = self.mlflow_tracking_password
+ + + ######################### + # Model Loading Methods # + ######################### + # TODO: add return type and error handling +
+[docs] + def latest_model_version(self, model_name: str): + """Load the latest version of a model from mlflow. + + :param model_name: The name of the model to load. + :type model_name: str + :return: The loaded model. + + """ + model_latest_version = self.mlflow_client.get_latest_versions(model_name) + return mlflow.dspy.load_model(model_latest_version[0].source)
+ + + # TODO: add return type and error handling +
+[docs] + def model_by_name_and_version(self, model_name: str, model_version: str): + """Load a model from mlflow by name and version. + + :param model_name: The name of the model to load. :type model_name: str :param + model_version: The version of the model to load. :type model_version: str + :return: The loaded model. + + """ + model = self.mlflow_client.get_model_version(model_name, model_version) + return mlflow.dspy.load_model(model.source)
+ + + # TODO: add return type and error handling +
+[docs] + def model_by_uri(self, model_uri: str): + """Load a model from mlflow by uri. + + :param model_uri: The uri of the model to load. + :type model_uri: str + :return: The loaded model. + + """ + return mlflow.dspy.load_model(model_uri)
+ + +
+[docs] + def model_by_args(self, load_model_args: Dict[str, str]): + # TODO: refactor this to use a more elegant method + """Given a dictionary of arguments, load a model from mlflow. Ordering is + model_by_uri, model_by_name_and_version, latest_model_version. + + :param load_model_args: A dictionary of arguments. + :type load_model_args: Dict[str, str] + :return: The loaded model. + + """ + if load_model_args.get("model_uri"): + return self.model_by_uri(load_model_args["model_uri"]) + elif load_model_args.get("model_name") and load_model_args.get("model_version"): + return self.model_by_name_and_version( + load_model_args["model_name"], load_model_args["model_version"] + ) + elif load_model_args.get("model_name"): + return self.latest_model_version(load_model_args["model_name"]) + else: + raise ValueError("No valid model arguments provided.")
+ + + ######################### + # Model Saving Methods # + ######################### + +
+[docs] + def save_model( + self, model: dspy.Signature, model_signature: ModelSignature, model_name: str + ): + """Save a model to mlflow. + + :param model: The model to save. :type model: dspy.Signature :param + model_signature: The signature of the model. :type model_signature: + ModelSignature :param model_name: The name of the model to save. :type + model_name: str + + """ + mlflow.dspy.log_model( + dspy_model=model, + artifact_path="model", + signature=model_signature, + task=None, + registered_model_name=model_name, + ) # TODO: add metadata related to trainset and evalset
+ + + ############################ + # Metadata Loading Methods # + ############################ + +
+[docs] + def run_parameters(self, run_id: str) -> dict[str, Any]: + """Load the parameters of a run from mlflow. + + :param run_id: The id of the run to load the parameters from. + :type run_id: str + :return: The parameters of the run. + + """ + run = self.mlflow_client.get_run(run_id) + + # go through and convert the nested dictionaries to actual dictionaries + # (as they are currently strings) + for key, value in run.data.params.items(): + run.data.params[key] = ast.literal_eval(value) + return run.data.params
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/parser.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/parser.html index 37206f3..990ee8b 100644 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/parser.html +++ b/graphdoc/docs/_build/html/_modules/graphdoc/data/parser.html @@ -71,16 +71,15 @@

Source code for graphdoc.data.parser

-# system packages
+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
 import copy
 import logging
 from pathlib import Path
 from typing import Optional, Union
 
-# internal packages
-from .schema import SchemaObject
-from .helper import check_directory_path, check_file_path
-
 # external packages
 from graphql import (
     DocumentNode,
@@ -94,16 +93,19 @@ 

Source code for graphdoc.data.parser

     print_ast,
 )
 
+from graphdoc.data.helper import check_directory_path, check_file_path
+
+# internal packages
+from graphdoc.data.schema import SchemaObject
+
 # logging
 log = logging.getLogger(__name__)
 
 
 
-[docs] +[docs] class Parser: - """ - A class for parsing and handling of GraphQL objects. - """ + """A class for parsing and handling of GraphQL objects.""" DEFAULT_NODE_TYPES = { DocumentNode: "full schema", @@ -116,20 +118,18 @@

Source code for graphdoc.data.parser

         self.type_mapping = type_mapping or Parser.DEFAULT_NODE_TYPES
 
 
-[docs] +[docs] @staticmethod def _check_node_type( node: Node, type_mapping: Optional[dict[type, str]] = None ) -> str: - """ - Check the type of a schema node. + """Check the type of a schema node. - :param node: The schema node to check - :type node: Node - :param type_mapping: Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES - :type type_mapping: Optional[dict[type, str]] - :return: The type of the schema node + :param node: The schema node to check :type node: Node :param type_mapping: + Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES :type + type_mapping: Optional[dict[type, str]] :return: The type of the schema node :rtype: str + """ # use provided mapping or fall back to defaults mapping = type_mapping or Parser.DEFAULT_NODE_TYPES @@ -137,22 +137,23 @@

Source code for graphdoc.data.parser

 
 
 
-[docs] +[docs] @staticmethod def parse_schema_from_file( schema_file: Union[str, Path], schema_directory_path: Optional[Union[str, Path]] = None, ) -> DocumentNode: - """ - Parse a schema from a file. + """Parse a schema from a file. - :param schema_file: The name of the schema file - :type schema_file: str + :param schema_file: The name of the schema file :type schema_ + file: + str :param schema_directory_path: A path to a directory containing schemas :type schema_directory_path: str :return: The parsed schema :rtype: DocumentNode :raises Exception: If the schema cannot be parsed + """ if schema_directory_path: check_directory_path(schema_directory_path) @@ -170,18 +171,21 @@

Source code for graphdoc.data.parser

 
 
 
-[docs] +[docs] @staticmethod def update_node_descriptions(node: Node, new_value: Optional[str] = None) -> Node: - """ - Given a GraphQL node, recursively traverse the node and its children, updating all descriptions with the new value. Can also be used to remove descriptions by passing None as the new value. + """Given a GraphQL node, recursively traverse the node and its children, + updating all descriptions with the new value. Can also be used to remove + descriptions by passing None as the new value. :param node: The GraphQL node to update :type node: Node - :param new_value: The new description value. If None, the description will be removed. + :param new_value: The new description value. If None, the description will be + removed. :type new_value: Optional[str] :return: The updated node :rtype: Node + """ if hasattr(node, "description"): description = getattr(node, "description", None) @@ -189,7 +193,7 @@

Source code for graphdoc.data.parser

                 if new_value:
                     description.value = new_value
                 else:
-                    setattr(node, "description", None)
+                    node.description = None
 
         for attr in dir(node):
             if attr.startswith("__") or attr == "description":
@@ -205,18 +209,19 @@ 

Source code for graphdoc.data.parser

 
 
 
-[docs] +[docs] @staticmethod def count_description_pattern_matching(node: Node, pattern: str) -> dict[str, int]: - """ - Counts the number of times a pattern matches a description in a node and its children. + """Counts the number of times a pattern matches a description in a node and its + children. :param node: The GraphQL node to count the pattern matches in :type node: Node :param pattern: The pattern to count the matches of :type pattern: str - :return: A dictionary containing the total number of descriptions, the number of descriptions that match the pattern, and the number of descriptions that are empty. { "total": int, "pattern": int, "empty": int } + :return: A dictionary with the counts of matches :rtype: dict[str, int] + """ counts = { "total": 0, @@ -254,7 +259,7 @@

Source code for graphdoc.data.parser

 
 
 
-[docs] +[docs] @staticmethod def fill_empty_descriptions( node: Node, @@ -263,30 +268,28 @@

Source code for graphdoc.data.parser

         use_value_name: bool = True,
         value_name: Optional[str] = None,
     ):
-        """
-        Recursively traverse the node and its children, filling in empty descriptions with the new column or table value. Do not update descriptions that already have a value. Default values are provided for the new column and table descriptions.
+        """Recursively traverse the node and its children, filling in empty descriptions
+        with the new column or table value. Do not update descriptions that already have
+        a value. Default values are provided for the new column and table descriptions.
+
+        :param node: The GraphQL node to update :type node: Node :param
+        new_column_value: The new column description value :type new_column_value: str
+        :param new_table_value: The new table description value :type new_table_value:
+        str :param use_value_name: Whether to use the value name in the description
+        :type use_value_name: bool :param value_name: The name of the value :type
+        value_name: Optional[str] :return: The updated node :rtype: Node
 
-        :param node: The GraphQL node to update
-        :type node: Node
-        :param new_column_value: The new column description value
-        :type new_column_value: str
-        :param new_table_value: The new table description value
-        :type new_table_value: str
-        :param use_value_name: Whether to use the value name in the description
-        :type use_value_name: bool
-        :param value_name: The name of the value
-        :type value_name: Optional[str]
-        :return: The updated node
-        :rtype: Node
         """
         if hasattr(node, "description"):  # and node.description == None:
             description = getattr(node, "description", None)
-            if description == None:
+            if description is None:
                 # if the node is a table, use the table value
                 if isinstance(node, ObjectTypeDefinitionNode):
                     new_value = new_table_value
                 elif isinstance(node, EnumTypeDefinitionNode):  # this is an enum type
-                    new_value = f"Description for enum type: {value_name}"  # TODO: we should add this back to the fill_empty_descriptions parameter list
+                    new_value = f"Description for enum type: {value_name}"
+                    # TODO: we should add this back to the fill_empty_descriptions
+                    # parameter list
                 # else the node is a column, use the column value
                 else:
                     new_value = new_column_value
@@ -315,7 +318,8 @@ 

Source code for graphdoc.data.parser

                         ):
                             if isinstance(child, ObjectTypeDefinitionNode):
                                 log.debug(
-                                    f"found an instance of a ObjectTypeDefinitionNode: {item.name.value}"
+                                    f"found an instance of a ObjectTypeDefinitionNode: "
+                                    f"{item.name.value}"
                                 )
                             value_name = item.name.value
                         Parser.fill_empty_descriptions(
@@ -334,7 +338,8 @@ 

Source code for graphdoc.data.parser

                 ):
                     if isinstance(child, ObjectTypeDefinitionNode):
                         log.debug(
-                            f"found an instance of a ObjectTypeDefinitionNode: {child.name.value}"
+                            f"found an instance of a ObjectTypeDefinitionNode: "
+                            f"{child.name.value}"
                         )
                     value_name = child.name.value
                 Parser.fill_empty_descriptions(
@@ -348,18 +353,16 @@ 

Source code for graphdoc.data.parser

 
 
 
-[docs] +[docs] @staticmethod def schema_equality_check(gold_node: Node, check_node: Node) -> bool: - """ - A method to check if two schema nodes are equal. Only checks that the schemas structures are equal, not the descriptions. - - :param gold_node: The gold standard schema node - :type gold_node: Node - :param check_node: The schema node to check - :type check_node: Node - :return: Whether the schemas are equal - :rtype: bool + """A method to check if two schema nodes are equal. Only checks that the schemas + structures are equal, not the descriptions. + + :param gold_node: The gold standard schema node :type gold_node: Node :param + check_node: The schema node to check :type check_node: Node :return: Whether the + schemas are equal :rtype: bool + """ gold_node_copy = copy.deepcopy(gold_node) check_node_copy = copy.deepcopy(check_node) @@ -373,16 +376,14 @@

Source code for graphdoc.data.parser

 
 
 
-[docs] +[docs] @staticmethod def schema_object_from_file( schema_file: Union[str, Path], category: Optional[str] = None, rating: Optional[int] = None, ) -> SchemaObject: - """ - Parse a schema object from a file. - """ + """Parse a schema object from a file.""" try: schema_ast = Parser.parse_schema_from_file(schema_file) schema_str = print_ast(schema_ast) @@ -404,20 +405,18 @@

Source code for graphdoc.data.parser

 
 
 
-[docs] +[docs] @staticmethod def parse_objects_from_full_schema_object( schema: SchemaObject, type_mapping: Optional[dict[type, str]] = None ) -> Union[dict[str, SchemaObject], None]: - """ - Parse out all available tables from a full schema object. - - :param schema: The full schema object to parse - :type schema: SchemaObject - :param type_mapping: Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES - :type type_mapping: Optional[dict[type, str]] - :return: The parsed objects (tables and enums) - :rtype: Union[dict, None] + """Parse out all available tables from a full schema object. + + :param schema: The full schema object to parse :type schema: SchemaObject :param + type_mapping: Custom mapping of node types to strings. Defaults to + DEFAULT_NODE_TYPES :type type_mapping: Optional[dict[type, str]] :return: The + parsed objects (tables and enums) :rtype: Union[dict, None] + """ if schema.schema_ast is None: log.info(f"Schema object has no schema_ast: {schema.schema_name}") @@ -431,11 +430,11 @@

Source code for graphdoc.data.parser

         tables = {}
         for definition in schema.schema_ast.definitions:
             if isinstance(definition, ObjectTypeDefinitionNode):
-                log.debug(f"found table schema")
+                log.debug("found table schema")
                 key = f"{schema.key}_{definition.name.value}"
                 schema_type = Parser._check_node_type(definition, type_mapping)
             elif isinstance(definition, EnumTypeDefinitionNode):
-                log.debug(f"found enum schema")
+                log.debug("found enum schema")
                 key = f"{schema.key}_{definition.name.value}"
                 schema_type = Parser._check_node_type(definition, type_mapping)
             else:
diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/schema.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/schema.html
index 9ce207f..691e8f0 100644
--- a/graphdoc/docs/_build/html/_modules/graphdoc/data/schema.html
+++ b/graphdoc/docs/_build/html/_modules/graphdoc/data/schema.html
@@ -71,27 +71,30 @@
            

Source code for graphdoc.data.schema

-# This file is used for defining our schema data class.
+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
 
 # system packages
 import logging
-from enum import Enum
 from dataclasses import dataclass
+from enum import Enum
 from pathlib import Path
-from typing import List, Optional, Union, Type
+from typing import List, Optional, Type, Union
 
-# internal packages
+from datasets import Dataset, Features, Value, concatenate_datasets
 
 # external packages
 from graphql import Node
-from datasets import Features, Value, Dataset, concatenate_datasets
+
+# internal packages
+
 
 # logging
 log = logging.getLogger(__name__)
 
 
 
-[docs] +[docs] class SchemaCategory(str, Enum): PERFECT = "perfect" ALMOST_PERFECT = "almost perfect" @@ -100,7 +103,7 @@

Source code for graphdoc.data.schema

     BLANK = "blank"
 
 
-[docs] +[docs] @classmethod def from_str(cls, value: str) -> Optional["SchemaCategory"]: try: @@ -112,7 +115,7 @@

Source code for graphdoc.data.schema

 
 
 
-[docs] +[docs] class SchemaRating(str, Enum): FOUR = "4" THREE = "3" @@ -121,7 +124,7 @@

Source code for graphdoc.data.schema

     ZERO = "0"
 
 
-[docs] +[docs] @classmethod def from_value(cls, value: Union[str, int]) -> Optional["SchemaRating"]: if isinstance(value, int): @@ -135,18 +138,19 @@

Source code for graphdoc.data.schema

 
 
 
-[docs] +[docs] class SchemaCategoryRatingMapping: """Maps SchemaCategory to SchemaRating."""
-[docs] +[docs] @staticmethod def get_rating(category: SchemaCategory) -> SchemaRating: """Get the corresponding rating for a given schema category. :param category: The schema category :return: The corresponding rating + """ mapping = { SchemaCategory.PERFECT: SchemaRating.FOUR, @@ -159,13 +163,14 @@

Source code for graphdoc.data.schema

 
 
 
-[docs] +[docs] @staticmethod def get_category(rating: SchemaRating) -> SchemaCategory: """Get the corresponding category for a given schema rating. :param rating: The schema rating :return: The corresponding category + """ mapping = { SchemaRating.FOUR: SchemaCategory.PERFECT, @@ -180,14 +185,14 @@

Source code for graphdoc.data.schema

 
 
 
-[docs] +[docs] class SchemaType(str, Enum): FULL_SCHEMA = "full schema" TABLE_SCHEMA = "table schema" ENUM_SCHEMA = "enum schema"
-[docs] +[docs] @classmethod def from_str(cls, value: str) -> Optional["SchemaType"]: try: @@ -199,7 +204,7 @@

Source code for graphdoc.data.schema

 
 
 
-[docs] +[docs] class SchemaCategoryPath(str, Enum): """Maps schema categories to their folder names.""" @@ -210,7 +215,7 @@

Source code for graphdoc.data.schema

     BLANK = "blank"
 
 
-[docs] +[docs] @classmethod def get_path( cls, category: SchemaCategory, folder_path: Union[str, Path] @@ -219,6 +224,7 @@

Source code for graphdoc.data.schema

 
         :param category: The schema category
         :return: The corresponding folder path
+
         """
         mapping = {
             SchemaCategory.PERFECT: Path(folder_path) / cls.PERFECT,
@@ -233,7 +239,7 @@ 

Source code for graphdoc.data.schema

 
 
 
-[docs] +[docs] @dataclass class SchemaObject: key: str @@ -245,7 +251,7 @@

Source code for graphdoc.data.schema

     schema_ast: Optional[Node] = None
 
 
-[docs] +[docs] @classmethod def from_dict( cls, @@ -260,6 +266,7 @@

Source code for graphdoc.data.schema

         :param category_enum: Custom Enum class for categories
         :param rating_enum: Custom Enum class for ratings
         :param type_enum: Custom Enum class for schema types
+
         """
         if "key" not in data:
             raise ValueError("Missing required field: key")
@@ -268,7 +275,7 @@ 

Source code for graphdoc.data.schema

         if data.get("category"):
             try:
                 category = category_enum(data["category"])
-            except ValueError as e:
+            except ValueError:
                 raise ValueError(
                     f"Invalid category. Must be one of: {[e.value for e in category_enum]}"
                 )
@@ -281,7 +288,7 @@ 

Source code for graphdoc.data.schema

                     rating = rating_enum.from_value(data["rating"])  # type: ignore
                 else:
                     rating = rating_enum(data["rating"])
-            except ValueError as e:
+            except ValueError:
                 raise ValueError(
                     f"Invalid rating. Must be one of: {[e.value for e in rating_enum]}"
                 )
@@ -290,7 +297,7 @@ 

Source code for graphdoc.data.schema

         if data.get("schema_type"):
             try:
                 schema_type = type_enum(data["schema_type"])
-            except ValueError as e:
+            except ValueError:
                 raise ValueError(
                     f"Invalid schema type. Must be one of: {[e.value for e in type_enum]}"
                 )
@@ -307,13 +314,13 @@ 

Source code for graphdoc.data.schema

 
 
 
-[docs] +[docs] def to_dict(self) -> dict: - """ - Convert the SchemaObject to a dictionary, excluding the key field. + """Convert the SchemaObject to a dictionary, excluding the key field. :return: Dictionary representation of the SchemaObject without the key :rtype: dict + """ return { "category": self.category.value if self.category else None, @@ -326,14 +333,15 @@

Source code for graphdoc.data.schema

 
 
 
-[docs] +[docs] @staticmethod def _hf_schema_object_columns() -> Features: - """ - Return the columns for the graph_doc dataset, based on the SchemaObject fields. + """Return the columns for the graph_doc dataset, based on the SchemaObject + fields. :return: The columns for the graph_doc dataset :rtype: Features + """ return Features( { @@ -347,13 +355,13 @@

Source code for graphdoc.data.schema

 
 
 
-[docs] +[docs] def to_dataset(self) -> Dataset: - """ - Convert the SchemaObject to a Hugging Face Dataset. + """Convert the SchemaObject to a Hugging Face Dataset. :return: The Hugging Face Dataset :rtype: Dataset + """ dictionary = { "category": [self.category.value if self.category else None], @@ -371,13 +379,13 @@

Source code for graphdoc.data.schema

 
 # TODO: we may end up wanting to both abstract and/or move this elsewhere
 
-[docs] +[docs] def schema_objects_to_dataset(schema_objects: List[SchemaObject]) -> Dataset: - """ - Convert a list of SchemaObjects to a Hugging Face Dataset. + """Convert a list of SchemaObjects to a Hugging Face Dataset. :param schema_objects: The list of SchemaObjects :return: The Hugging Face Dataset + """ return concatenate_datasets( [schema_object.to_dataset() for schema_object in schema_objects] diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/eval/doc_generator_eval.html b/graphdoc/docs/_build/html/_modules/graphdoc/eval/doc_generator_eval.html new file mode 100644 index 0000000..4a487c2 --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/eval/doc_generator_eval.html @@ -0,0 +1,242 @@ + + + + + + graphdoc.eval.doc_generator_eval — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for graphdoc.eval.doc_generator_eval

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
+import logging
+from pathlib import Path
+from typing import Any, List, Union
+
+# external packages
+import dspy
+import mlflow
+from graphql import parse, print_ast
+
+# internal packages
+from graphdoc.data import MlflowDataHelper
+from graphdoc.modules import DocGeneratorModule
+from graphdoc.prompts import DocQualityPrompt, SinglePrompt
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class DocGeneratorEvaluator(dspy.Module): +
+[docs] + def __init__( + self, + generator: Union[ + DocGeneratorModule, dspy.Module, Any + ], # we have type hints, but accept any type for flexibility + evaluator: Union[ + DocQualityPrompt, SinglePrompt, Any + ], # we have type hints, but accept any type for flexibility + evalset: Union[List[dspy.Example], Any], + mlflow_tracking_uri: Union[str, Path], + mlflow_experiment_name: str = "doc_generator_eval", + generator_prediction_field: str = "documented_schema", + evaluator_prediction_field: str = "rating", + readable_value: int = 25, + ): + """A simple module for evaluating the quality of generated documentation. We + will make this extensible to include more complex evaluation metrics in the + future. + + Important: we assume that the rating values returned by the evaluator are + [1, 2, 3, 4]. We will make this more flexible in the future. + + """ + self.generator = generator + self.evaluator = evaluator + self.evalset = evalset + self.mlflow_tracking_uri = mlflow_tracking_uri + self.generator_prediction_field = generator_prediction_field + self.evaluator_prediction_field = evaluator_prediction_field + self.mlflow_helper = MlflowDataHelper(mlflow_tracking_uri) + self.mlflow_experiment_name = mlflow_experiment_name + self.readable_value = readable_value
+ + +
+[docs] + def forward(self, database_schema: str) -> dict[str, Any]: + """Takes a database schema, documents it, and then evaluates each component and + the aggregate.""" + # (we assume we are using DocGeneratorModule) + generator_result = self.generator.forward(database_schema) # type: ignore + # TODO: let's decide if this is how we want to handle this in the future. + # Alternatively, we could return the documented schema from forward, + # not as a prediction object. + documented_schema = getattr(generator_result, self.generator_prediction_field) + + try: + documented_ast = parse(documented_schema) + component_ratings = [] + for node in documented_ast.definitions: + p = self.evaluator.infer(database_schema=print_ast(node)) + # TODO: let's decide if this is how we want to handle this, + # or if we should standardize the return type of the evaluator. + rating = getattr(p, self.evaluator_prediction_field) + rating = rating * self.readable_value if rating != 1 else 0 + component_ratings.append(rating) + + overall_p = self.evaluator.infer(database_schema=documented_schema) + overall_rating = getattr(overall_p, self.evaluator_prediction_field) + overall_rating = ( + overall_rating * self.readable_value if overall_rating != 1 else 0 + ) + + return { + "overall_rating": overall_rating, + "average_component_rating": sum(component_ratings) + / len(component_ratings), + "component_ratings": component_ratings, + } + + except Exception as e: + log.warning(f"Generated schema was not valid GraphQL: {e}") + document_ast = parse(database_schema) + # TODO: we should have a dynamic way of knowing the rating values + # that are being used by the evaluator. + return { + "overall_rating": 0, + "average_component_rating": 0, + "component_ratings": [0] * len(document_ast.definitions), + }
+ + +
+[docs] + def evaluate(self): + """Batches the evaluation set and logs the results to mlflow.""" + mlflow.set_experiment(self.mlflow_experiment_name) + with mlflow.start_run(): + # evalset = [x.database_schema for x in self.evalset] + evaluation_results = self.batch(self.evalset, num_threads=32) + avg_overall_rating = sum( + [x["overall_rating"] for x in evaluation_results] + ) / len(evaluation_results) + avg_component_rating = sum( + [x["average_component_rating"] for x in evaluation_results] + ) / len(evaluation_results) + + mlflow.log_metric("average_overall_rating", avg_overall_rating) + mlflow.log_metric("average_component_rating", avg_component_rating) + mlflow.log_dict( + { + "component_ratings": [ + x["component_ratings"] for x in evaluation_results + ] + }, + "component_ratings.json", + )
+
+ + + # TODO: log the parameters so we can reproduce the results. + # TODO: utilize huggingface datasets and commit hashes to enable reproducibility. +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/main.html b/graphdoc/docs/_build/html/_modules/graphdoc/main.html deleted file mode 100644 index eef28c1..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/main.html +++ /dev/null @@ -1,693 +0,0 @@ - - - - - - graphdoc.main — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for graphdoc.main

-# system packages
-import logging
-import random
-from pathlib import Path
-from typing import List, Literal, Optional, Union
-
-# internal packages
-from .train import TrainerFactory, SinglePromptTrainer
-from .data import (
-    setup_logging,
-    load_yaml_config,
-    LocalDataHelper,
-    QualityDataHelper,
-    GenerationDataHelper,
-    MlflowDataHelper,
-    DspyDataHelper,
-)
-from .prompts import SinglePrompt, PromptFactory, DocGeneratorPrompt
-from .modules import DocGeneratorModule
-from .eval import DocGeneratorEvaluator
-
-# external packages
-import dspy
-
-# logging
-log = logging.getLogger(__name__)
-
-# global variables
-random.seed(42)
-
-
-
-[docs] -class GraphDoc: -
-[docs] - def __init__( - self, - model_args: dict, - mlflow_tracking_uri: Optional[Union[str, Path]] = None, - log_level: Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] = "INFO", - ): - """ - Main entry point for the GraphDoc class. Refer to DSPy for a complete list of model arguments. - - :param model_args: Dictionary containing model arguments. - :type model_args: dict - :param mlflow_tracking_uri: MLflow tracking URI. - :type mlflow_tracking_uri: Optional[str] - :param log_level: Logging level. - """ - setup_logging(log_level) - log.info(f"GraphDoc initialized with model_args: {model_args}") - - try: - self.lm = dspy.LM(**model_args) - dspy.configure(lm=self.lm) - except Exception as e: - log.error(f"Error initializing LM: {e}") - raise e - - if mlflow_tracking_uri: - self.mdh = MlflowDataHelper(mlflow_tracking_uri) - else: - self.mdh = None - self.mlflow_tracking_uri = mlflow_tracking_uri
- - - ####################### - # Class Methods # - ####################### -
-[docs] - @classmethod - def from_dict(cls, config_dict: dict) -> "GraphDoc": - """ - Create a GraphDoc object from a dictionary of parameters. - - { - "graphdoc": { - "log_level": "INFO", - "mlflow_tracking_uri": "http://localhost:5001" - }, - "language_model": { - "model": "openai/gpt-4o", - "api_key": "!env OPENAI_API_KEY", - } - } - """ - return GraphDoc( - model_args=config_dict["language_model"], - mlflow_tracking_uri=config_dict["graphdoc"].get( - "mlflow_tracking_uri", None - ), - log_level=config_dict["graphdoc"].get("log_level", "INFO"), - )
- - -
-[docs] - @classmethod - def from_yaml(cls, yaml_path: Union[str, Path]) -> "GraphDoc": - """ - Create a GraphDoc object from a YAML file. - - graphdoc: - log_level: INFO # The log level to use - - language_model: - model: openai/gpt-4o # Must be a valid dspy language model - api_key: !env OPENAI_API_KEY # Must be a valid dspy language model API key - cache: true # Whether to cache the calls to the language model - """ - config = load_yaml_config(yaml_path) - return GraphDoc.from_dict(config)
- - - ####################### - # Data Methods # - ####################### -
-[docs] - def trainset_from_dict(self, trainset_dict: dict) -> List[dspy.Example]: - """ - Load a trainset from a dictionary of parameters. - - { - "hf_api_key": !env HF_DATASET_KEY, # Must be a valid Hugging Face API key (with permission to access graphdoc) # TODO: we may make this public in the future - "load_from_hf": false, # Whether to load the dataset from Hugging Face - "load_from_local": true, # Whether to load the dataset from a local directory - "load_local_specific_category": false, # Whether to load all categories or a specific category (if load_from_local is true) - "local_specific_category": perfect, # The specific category to load from the dataset (if load_from_local is true) - "local_parse_objects": true, # Whether to parse the objects in the dataset (if load_from_local is true) - "split_for_eval": true, # Whether to split the dataset into trainset and evalset - "trainset_size": 1000, # The size of the trainset - "evalset_ratio": 0.1, # The proportionate size of the evalset - "data_helper_type": "quality" # Type of data helper to use (quality, generation) - } - - :param trainset_dict: Dictionary containing trainset parameters. - :type trainset_dict: dict - :return: A trainset. - :rtype: List[dspy.Example] - """ - # TODO: refactor to enable the passing of alternative schema_directory_path, and the related enums that must be passed in turn - ldh = LocalDataHelper() - - if trainset_dict["data_helper_type"] == "quality": - dh = QualityDataHelper() - elif trainset_dict["data_helper_type"] == "generation": - dh = GenerationDataHelper() - else: - raise ValueError( - f"Invalid data helper type: {trainset_dict['data_helper_type']}" - ) - - # TODO: refactor to be more ergonomic once we have more data sources implemented - if trainset_dict["load_from_hf"]: - raise NotImplementedError("loading from Hugging Face is not implemented") - if trainset_dict["load_from_local"]: - if trainset_dict["load_local_specific_category"]: - raise NotImplementedError( - "loading a specific category is not implemented" - ) - dataset = ldh.folder_of_folders_to_dataset( - parse_objects=trainset_dict["local_parse_objects"] - ) - trainset = dh.trainset(dataset) - if trainset_dict["trainset_size"] and isinstance( - trainset_dict["trainset_size"], int - ): - trainset = trainset[: trainset_dict["trainset_size"]] - return trainset - else: - raise ValueError( - f"Current implementation only supports loading from local directory" - )
- - -
-[docs] - def trainset_from_yaml(self, yaml_path: Union[str, Path]) -> List[dspy.Example]: - """ - Load a trainset from a YAML file. - - data: - hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key (with permission to access graphdoc) # TODO: we may make this public in the future - load_from_hf: false # Whether to load the dataset from Hugging Face - load_from_local: true # Whether to load the dataset from a local directory - load_local_specific_category: false # Whether to load all categories or a specific category (if load_from_local is true) - local_specific_category: perfect # The specific category to load from the dataset (if load_from_local is true) - local_parse_objects: True # Whether to parse the objects in the dataset (if load_from_local is true) - split_for_eval: True # Whether to split the dataset into trainset and evalset - trainset_size: 1000 # The size of the trainset - evalset_ratio: 0.1 # The proportionate size of the evalset - data_helper_type: quality # Type of data helper to use (quality, generation) - - :param yaml_path: Path to the YAML file. - :type yaml_path: Union[str, Path] - :return: A trainset. - :rtype: List[dspy.Example] - """ - config = load_yaml_config(yaml_path) - trainset = self.trainset_from_dict(config["data"]) - return trainset
- - -
-[docs] - def split_trainset( - self, trainset: List[dspy.Example], evalset_ratio: float - ) -> tuple[List[dspy.Example], List[dspy.Example]]: - """ - Split a trainset into a trainset and evalset. - - :param trainset: The trainset to split. - :type trainset: List[dspy.Example] - :param evalset_ratio: The proportionate size of the evalset. - :type evalset_ratio: float - :return: A tuple of trainset and evalset. - :rtype: tuple[List[dspy.Example], List[dspy.Example]] - """ - split_idx = int(len(trainset) * (1 - evalset_ratio)) - random.shuffle(trainset) - evalset = trainset[split_idx:] - trainset = trainset[:split_idx] - return trainset, evalset
- - -
-[docs] - def trainset_and_evalset_from_yaml( - self, yaml_path: Union[str, Path] - ) -> tuple[List[dspy.Example], List[dspy.Example]]: - """ - Load a trainset and evalset from a YAML file. - - data: - hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key (with permission to access graphdoc) # TODO: we may make this public in the future - load_from_hf: false # Whether to load the dataset from Hugging Face - load_from_local: true # Whether to load the dataset from a local directory - load_local_specific_category: false # Whether to load all categories or a specific category (if load_from_local is true) - local_specific_category: perfect # The specific category to load from the dataset (if load_from_local is true) - local_parse_objects: True # Whether to parse the objects in the dataset (if load_from_local is true) - split_for_eval: True # Whether to split the dataset into trainset and evalset - trainset_size: 1000 # The size of the trainset - evalset_ratio: 0.1 # The proportionate size of the evalset - data_helper_type: quality # Type of data helper to use (quality, generation) - - :param yaml_path: Path to the YAML file. - :type yaml_path: Union[str, Path] - :return: A tuple of trainset and evalset. - :rtype: tuple[List[dspy.Example], List[dspy.Example]] - """ - config = load_yaml_config(yaml_path) - trainset = self.trainset_from_dict(config["data"]) - return self.split_trainset(trainset, config["data"]["evalset_ratio"])
- - - ####################### - # Prompt Methods # - ####################### -
-[docs] - def single_prompt_from_dict( - self, prompt_dict: dict, prompt_metric: Union[str, SinglePrompt] - ) -> SinglePrompt: - """ - Load a single prompt from a dictionary of parameters. - - { - "prompt": "doc_quality", # Which prompt signature to use - "class": "SchemaDocQualityPrompt", # Must be a child of SinglePrompt (we will use an enum to map this) - "type": "predict", # The type of prompt to use (predict, chain_of_thought) - "metric": "rating", # The type of metric to use (rating, category) - "load_from_mlflow": false, # Whether to load the prompt from an MLFlow URI - "model_uri": null, # The tracking URI for MLflow - "model_name": null, # The name of the model in MLflow - "model_version": null # The version of the model in MLflow - "prompt_metric": False # Whether another prompt is used to calculate the metric (in which case we must also load that prompt) - } - - :param prompt_dict: Dictionary containing prompt information. - :type prompt_dict: dict - :param prompt_metric: The metric to use to calculate the metric. Can be another prompt signature or a string. - :type prompt_metric: Union[str, SinglePrompt] - :return: A SinglePrompt object. - :rtype: SinglePrompt - """ - try: - # if we are loading from mlflow, modify the prompt_dict with the loaded model - if prompt_dict["load_from_mlflow"]: - if self.mdh: - log.info(f"Loading prompt from MLflow: {prompt_dict}") - prompt = self.mdh.model_by_args(prompt_dict) - log.info(f"Prompt loaded from MLflow: {prompt}") - prompt_signature = DspyDataHelper.prompt_signature(prompt) - prompt_dict["prompt"] = prompt_signature - else: - raise ValueError("MLflow tracking URI not provided") - - return PromptFactory.single_prompt( - prompt=prompt_dict["prompt"], - prompt_class=prompt_dict["class"], - prompt_type=prompt_dict["type"], - prompt_metric=prompt_metric, - ) - except Exception as e: - log.error(f"Error creating single prompt: {e}") - raise e
- - -
-[docs] - def single_prompt_from_yaml(self, yaml_path: Union[str, Path]) -> SinglePrompt: - """ - Load a single prompt from a YAML file. - - prompt: - prompt: doc_quality # Which prompt signature to use - class: SchemaDocQualityPrompt # Must be a child of SinglePrompt (we will use an enum to map this) - type: predict # The type of prompt to use (predict, chain_of_thought) - metric: rating # The type of metric to use (rating, category) - load_from_mlflow: false # Whether to load the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: False # Whether another prompt is used to calculate the metric (in which case we must also load that prompt) - - prompt_metric: # Follows the same format as the prompt section - prompt: null # The prompt to use to calculate the metric - class: null # The class of the prompt to use to calculate the metric - type: null # The type of prompt to use to calculate the metric - metric: null # The metric to use to calculate the metric - load_from_mlflow: false # Whether to load the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - - :param yaml_path: Path to the YAML file. - :type yaml_path: str - :return: A SinglePrompt object. - :rtype: SinglePrompt - """ - config = load_yaml_config(yaml_path) - if config["prompt"]["prompt_metric"]: - prompt_metric_config = config["prompt_metric"] - prompt_metric_metric = prompt_metric_config["metric"] - prompt_metric = self.single_prompt_from_dict( - prompt_metric_config, prompt_metric_metric - ) - else: - prompt_metric = config["prompt"]["metric"] - prompt = self.single_prompt_from_dict(config["prompt"], prompt_metric) - return prompt
- - - ####################### - # Trainer Methods # - ####################### -
-[docs] - def single_trainer_from_dict( - self, - trainer_dict: dict, - prompt: SinglePrompt, - trainset: List[dspy.Example] = [dspy.Example()], - evalset: List[dspy.Example] = [dspy.Example()], - ) -> SinglePromptTrainer: - """ - Load a single trainer from a dictionary of parameters. - - { - "trainer": { - "class": "DocQualityTrainer", - "mlflow_model_name": "doc_quality_model", - "mlflow_experiment_name": "doc_quality_experiment", - "mlflow_tracking_uri": "http://localhost:5000" - }, - "optimizer": { - "optimizer_type": "miprov2", - "auto": "light", - "max_labeled_demos": 2, - "max_bootstrapped_demos": 4, - "num_trials": 2, - "minibatch": true - }, - } - - :param trainer_dict: Dictionary containing trainer parameters. - :type trainer_dict: dict - :param prompt: The prompt to use for this trainer. - :type prompt: SinglePrompt - :return: A SinglePromptTrainer object. - :rtype: SinglePromptTrainer - """ - try: - return TrainerFactory.single_trainer( - trainer_class=trainer_dict["trainer"]["class"], - prompt=prompt, - optimizer_type=trainer_dict["optimizer"]["optimizer_type"], - optimizer_kwargs=trainer_dict["optimizer"], - mlflow_model_name=trainer_dict["trainer"]["mlflow_model_name"], - mlflow_experiment_name=trainer_dict["trainer"][ - "mlflow_experiment_name" - ], - mlflow_tracking_uri=trainer_dict["trainer"]["mlflow_tracking_uri"], - trainset=trainset, - evalset=evalset, - ) - except Exception as e: - log.error(f"Error creating single trainer: {e}") - raise e
- - -
-[docs] - def single_trainer_from_yaml( - self, yaml_path: Union[str, Path] - ) -> SinglePromptTrainer: - """ - Load a single trainer from a YAML file. - - data: - hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key (with permission to access graphdoc) # TODO: we may make this public in the future - load_from_hf: false # Whether to load the dataset from Hugging Face - load_from_local: true # Whether to load the dataset from a local directory - load_local_specific_category: false # Whether to load all categories or a specific category (if load_from_local is true) - local_specific_category: perfect # The specific category to load from the dataset (if load_from_local is true) - local_parse_objects: True # Whether to parse the objects in the dataset (if load_from_local is true) - split_for_eval: True # Whether to split the dataset into trainset and evalset - trainset_size: 10 # The size of the trainset - evalset_ratio: 0.1 # The proportionate size of the evalset - data_helper_type: generation # Type of data helper to use (quality, generation) - - prompt: - prompt: base_doc_gen # Which prompt signature to use - class: DocGeneratorPrompt # Must be a child of SinglePrompt (we will use an enum to map this) - type: chain_of_thought # The type of prompt to use (predict, chain_of_thought) - metric: rating # The type of metric to use (rating, category) - load_from_mlflow: false # Whether to load the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: true # Whether another prompt is used to calculate the metric (in which case we must also load that prompt) - - prompt_metric: - prompt: doc_quality # The prompt to use to calculate the metric - class: DocQualityPrompt # The class of the prompt to use to calculate the metric - type: predict # The type of prompt to use to calculate the metric - metric: rating # The metric to use to calculate the metric - load_from_mlflow: false # Whether to load the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - - :param yaml_path: Path to the YAML file. - :type yaml_path: Union[str, Path] - :return: A SinglePromptTrainer object. - :rtype: SinglePromptTrainer - """ - try: - config = load_yaml_config(yaml_path) - prompt = self.single_prompt_from_yaml(yaml_path) - trainset, evalset = self.trainset_and_evalset_from_yaml(yaml_path) - return self.single_trainer_from_dict(config, prompt, trainset, evalset) - except Exception as e: - log.error(f"Error creating trainer from YAML: {e}") - raise e
- - - ####################### - # Module Methods # - ####################### -
-[docs] - def doc_generator_module_from_dict( - self, module_dict: dict, prompt: Union[DocGeneratorPrompt, SinglePrompt] - ) -> DocGeneratorModule: - """ - Load a doc generator module from a dictionary of parameters. - - { - "retry": true, - "retry_limit": 1, - "rating_threshold": 3, - "fill_empty_descriptions": true - } - - :param module_dict: Dictionary containing module parameters. - :type module_dict: dict - :param prompt: The prompt to use for this module. - :type prompt: DocGeneratorPrompt - :return: A DocGeneratorModule object. - :rtype: DocGeneratorModule - """ - return DocGeneratorModule( - prompt=prompt, - retry=module_dict["retry"], - retry_limit=module_dict["retry_limit"], - rating_threshold=module_dict["rating_threshold"], - fill_empty_descriptions=module_dict["fill_empty_descriptions"], - )
- - -
-[docs] - def doc_generator_module_from_yaml( - self, yaml_path: Union[str, Path] - ) -> DocGeneratorModule: - """ - Load a doc generator module from a YAML file. - - prompt: - prompt: base_doc_gen # Which prompt signature to use - class: DocGeneratorPrompt # Must be a child of SinglePrompt (we will use an enum to map this) - type: chain_of_thought # The type of prompt to use (predict, chain_of_thought) - metric: rating # The type of metric to use (rating, category) - load_from_mlflow: false # Whether to load the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: true # Whether another prompt is used to calculate the metric (in which case we must also load that prompt) - - prompt_metric: - prompt: doc_quality # The prompt to use to calculate the metric - class: DocQualityPrompt # The class of the prompt to use to calculate the metric - type: predict # The type of prompt to use to calculate the metric - metric: rating # The metric to use to calculate the metric - load_from_mlflow: false # Whether to load the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - - module: - retry: true # Whether to retry the generation if the quality check fails - retry_limit: 1 # The maximum number of retries - rating_threshold: 3 # The rating threshold for the quality check - fill_empty_descriptions: true # Whether to fill the empty descriptions in the schema - """ - config = load_yaml_config(yaml_path)["module"] - prompt = self.single_prompt_from_yaml(yaml_path) - return self.doc_generator_module_from_dict(config, prompt)
- - - ####################### - # Eval Methods # - ####################### -
-[docs] - def doc_generator_eval_from_yaml( - self, yaml_path: Union[str, Path] - ) -> DocGeneratorEvaluator: - """ - Load a doc generator evaluator from a YAML file. - """ - # load the generator - generator = self.doc_generator_module_from_yaml(yaml_path) - config = load_yaml_config(yaml_path) - - # load the evaluator - metric_config = config["prompt_metric"] - evaluator = self.single_prompt_from_dict(metric_config, metric_config["metric"]) - - # load the eval config - if self.mdh is not None: - mlflow_tracking_uri = self.mdh.mlflow_tracking_uri - else: - mlflow_tracking_uri = config["eval"]["mlflow_tracking_uri"] - mlflow_experiment_name = config["eval"]["mlflow_experiment_name"] - generator_prediction_field = config["eval"]["generator_prediction_field"] - evaluator_prediction_field = config["eval"]["evaluator_prediction_field"] - readable_value = config["eval"]["readable_value"] - - # load the evalset - evalset = self.trainset_from_yaml(yaml_path) - - # return the evaluator - return DocGeneratorEvaluator( - generator=generator, - evaluator=evaluator, - evalset=evalset, - mlflow_tracking_uri=mlflow_tracking_uri, - mlflow_experiment_name=mlflow_experiment_name, - generator_prediction_field=generator_prediction_field, - evaluator_prediction_field=evaluator_prediction_field, - readable_value=readable_value, - )
-
- -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/modules/doc_generator_module.html b/graphdoc/docs/_build/html/_modules/graphdoc/modules/doc_generator_module.html new file mode 100644 index 0000000..acb5ae3 --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/modules/doc_generator_module.html @@ -0,0 +1,462 @@ + + + + + + graphdoc.modules.doc_generator_module — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for graphdoc.modules.doc_generator_module

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
+import logging
+from typing import Any, Literal, Optional, Union
+
+# external packages
+import dspy
+import mlflow
+from graphql import parse, print_ast
+
+# internal packages
+from graphdoc.data import Parser
+from graphdoc.prompts import DocGeneratorPrompt, SinglePrompt
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class DocGeneratorModule(dspy.Module): +
+[docs] + def __init__( + self, + prompt: Union[DocGeneratorPrompt, SinglePrompt], + retry: bool = True, + retry_limit: int = 1, + rating_threshold: int = 3, + fill_empty_descriptions: bool = True, + ) -> None: + """Initialize the DocGeneratorModule. A module for generating documentation for + a given GraphQL schema. Schemas are decomposed and individually used to generate + documentation, with a quality check after each generation. + + signature fields are: + - database_schema: str = dspy.InputField() + - documented_schema: str = dspy.OutputField() + + :param prompt: The prompt to use for generating documentation. + :type prompt: DocGeneratorPrompt + :param retry: Whether to retry the generation if the quality check fails. + :type retry: bool + :param retry_limit: The maximum number of retries. + :type retry_limit: int + :param rating_threshold: The minimum rating for a generated document to be + considered valid. + :type rating_threshold: int + + """ + super().__init__() + + self.prompt = prompt + self.retry = retry + self.retry_limit = retry_limit + self.rating_threshold = rating_threshold + # TODO: as we start to add more transformations to the schema, + # we should move to a dict like structure for passing in those parameters + self.fill_empty_descriptions = fill_empty_descriptions + self.par = Parser() + + # ensure that the doc generator prompt metric is set to rating + if self.prompt.prompt_metric.prompt_metric != "rating": + log.warning( + "DocGeneratorModule: prompt metric is not set to rating. Setting to rating." + ) + self.prompt.prompt_metric.prompt_metric = "rating"
+ + + ####################### + # MLFLOW TRACING # + ####################### + # TODO: we will break this out into a separate class later + # when we have need for it elsewhere + def _start_trace( + self, + client: mlflow.MlflowClient, + expirement_name: str, + trace_name: str, + inputs: dict, + attributes: dict, + ): + # set the experiment name so that everything is logged to the same experiment + mlflow.set_experiment(expirement_name) + + # start the trace + trace = client.start_trace( + name=trace_name, + inputs=inputs, + attributes=attributes, + # experiment_id=expirement_name, + ) + + return trace + + def _end_trace( + self, + client: mlflow.MlflowClient, + trace: Any, # TODO: trace: mlflow.Span, + # E AttributeError: module 'mlflow' has no attribute 'Span' + outputs: dict, + status: Literal["OK", "ERROR"], + ): + client.end_trace(request_id=trace.request_id, outputs=outputs, status=status) + + ####################### + # MODULE FUNCTIONS # + ####################### +
+[docs] + def _retry_by_rating(self, database_schema: str) -> str: + """Retry the generation if the quality check fails. Rating threshold is + determined at initialization. + + :param database_schema: The database schema to generate documentation for. :type + database_schema: str :return: The generated documentation. :rtype: str + + """ + + def _try_rating(database_schema: str) -> dspy.Prediction: + try: + return self.prompt.prompt_metric.infer(database_schema=database_schema) + except Exception as e: + log.warning( + f"DocGeneratorModule: error while attempting to compute rating: {e}" + ) + return dspy.Prediction(rating=self.rating_threshold) + # TODO: we could have better handling here, but the exponential decay + # on retries is a good fallback that is already built into the retry logic + + retries = 0 + rating = 0 + pred_database_schema = None + while retries < self.retry_limit: + # first pass, generate the documentation + prediction = self._predict(database_schema=database_schema) + pred_database_schema = prediction.documented_schema + + # get the rating for the documentation + rating_prediction = _try_rating(database_schema=pred_database_schema) + rating = rating_prediction.rating + log.info( + "Current rating (attempt #" + str(retries + 1) + "): " + str(rating) + ) + + # if the rating is above the threshold, return the documentation + if rating >= self.rating_threshold: + if retries > 0: + log.info( + "Retry improved rating quality to meet threshold (attempt #" + + str(retries + 1) + + ")" + ) + return pred_database_schema + log.info( + "The rating prediction is (attempt #" + + str(retries + 1) + + "): " + + str(rating_prediction) + ) + + # if the rating is below the threshold, prepare for a retry + if self.prompt.prompt_metric.prompt_type == "chain_of_thought": + log.info("Adding reasoning returned from the rating prediction") + reason = rating_prediction.reasoning + reason_database_schema = ( + f"# The documentation was previously generated " + f"and received a low quality rating " + f"because of the following reasoning: {reason}. " + f"Remove this comment in the documentation you generate\n" + + database_schema + ) + else: + reason_database_schema = ( + f"# This documentation was considered {rating_prediction.category}, " + f"please attempt again to generate the documentation properly. " + f"Remove this comment in the documentation you generate\n" + + database_schema + ) + + # prepare for the next retry + database_schema = reason_database_schema + retries += 1 + + log.warning( + "Retry limit reached. Returning the last documented schema with rating: " + + str(rating) + ) + if pred_database_schema is None: + log.warning("No documented schema returned from retries") + return database_schema + return pred_database_schema
+ + +
+[docs] + def _predict(self, database_schema: str) -> dspy.Prediction: + """Given a database schema, generate a documented schema. Performs the following + steps: + + - Check that the graphql is valid + - Fill the empty descriptions (if fill_empty_descriptions is True) + - Generate the documentation + - Check that the generated schema is valid + - Check that the generated schema matches the original schema + + :param database_schema: The database schema to generate documentation for. + :type database_schema: str + :return: The generated documentation. + :rtype: dspy.Prediction + + """ + # check that the graphql is valid + try: + database_ast = parse(database_schema) + except Exception as e: + log.warning("Invalid GraphQL schema provided at onset: " + str(e)) + return dspy.Prediction(documented_schema=database_schema) + + # fill the empty descriptions + if self.fill_empty_descriptions: + updated_ast = self.par.fill_empty_descriptions(database_ast) + database_schema = print_ast(updated_ast) + + # try to generate the schema + try: + prediction = self.prompt.infer(database_schema=database_schema) + except Exception as e: + log.warning("Error generating schema: " + str(e)) + return dspy.Prediction(documented_schema=database_schema) + + # check that the generated schema is valid + try: + prediction_ast = parse(prediction.documented_schema) + except Exception as e: + log.warning("Invalid GraphQL schema generated: " + str(e)) + return dspy.Prediction(documented_schema=database_schema) + + # check that the generated schema matches the original schema + if self.par.schema_equality_check(database_ast, prediction_ast): + return dspy.Prediction(documented_schema=prediction.documented_schema) + else: + log.warning("Generated schema does not match the original schema") + return dspy.Prediction(documented_schema=database_schema)
+ + +
+[docs] + def forward(self, database_schema: str) -> dspy.Prediction: + """Given a database schema, generate a documented schema. If retry is True, the + generation will be retried if the quality check fails. + + :param database_schema: The database schema to generate documentation for. :type + database_schema: str :return: The generated documentation. :rtype: + dspy.Prediction + + """ + if self.retry: + database_schema = self._retry_by_rating(database_schema=database_schema) + return dspy.Prediction(documented_schema=database_schema) + else: + return self._predict(database_schema=database_schema)
+ + +
+[docs] + def document_full_schema( + self, + database_schema: str, + trace: bool = False, + client: Optional[mlflow.MlflowClient] = None, + expirement_name: Optional[str] = None, + api_key: Optional[str] = None, + ) -> dspy.Prediction: + """Given a database schema, parse out the underlying components and document on + a per-component basis. + + :param database_schema: The database schema to generate documentation for. :type + database_schema: str :return: The generated documentation. :rtype: + dspy.Prediction + + """ + # if we are tracing, make sure make sure we have everything needed to log to mlflow + if trace: + if client is None: + raise ValueError("client must be provided if trace is True") + if expirement_name is None: + raise ValueError("expirement_name must be provided if trace is True") + if api_key is None: + raise ValueError("api_key must be provided if trace is True") + + # check that the graphql is valid + try: + document_ast = parse(database_schema) + except Exception as e: + raise ValueError("Invalid GraphQL schema provided: " + str(e)) + + # parse the schema into examples + examples = [] + for node in document_ast.definitions: + example = dspy.Example( + database_schema=print_ast(node), documented_schema="" + ).with_inputs("database_schema") + examples.append(example) + + if trace: + # start the trace + log.info("Starting trace") + root_trace = self._start_trace( + client=client, # type: ignore + # TODO: we should have better type handling, but we check at the top + expirement_name=expirement_name, # type: ignore + # TODO: we should have better type handling, but we check at the top + trace_name="document_full_schema", + inputs={"database_schema": database_schema}, + attributes={"api_key": api_key}, + ) + log.info("created trace: " + str(root_trace)) + + # batch generate the documentation + documented_examples = self.batch(examples, num_threads=32) + document_ast.definitions = tuple( + parse(ex.documented_schema) + for ex in documented_examples # type: ignore + # TODO: we should have better type handling, but we know this works + ) + + # check that the generated schema matches the original schema + if self.par.schema_equality_check(parse(database_schema), document_ast): + log.info("Schema equality check passed, returning documented schema") + return_schema = print_ast(document_ast) + status = "OK" + else: + log.warning("Generated schema does not match the original schema") + if self.fill_empty_descriptions: + updated_ast = self.par.fill_empty_descriptions(document_ast) + return_schema = print_ast(updated_ast) + else: + return_schema = database_schema + status = "ERROR" + + if trace: + log.info("Ending trace") + self._end_trace( + client=client, # type: ignore + # TODO: we should have better type handling, but we check at the top + trace=root_trace, # type: ignore + # TODO: we should have better type handling, but i believe we will get an + # error if root_trace has an issue during the start_trace call + outputs={"documented_schema": return_schema}, + status=status, + ) + log.info("ended trace: " + str(root_trace)) # type: ignore + # TODO: we should have better type handling, but we check at the top + return dspy.Prediction(documented_schema=return_schema)
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/prompts.html b/graphdoc/docs/_build/html/_modules/graphdoc/prompts.html index ae8fdc2..4e2c7a5 100644 --- a/graphdoc/docs/_build/html/_modules/graphdoc/prompts.html +++ b/graphdoc/docs/_build/html/_modules/graphdoc/prompts.html @@ -71,23 +71,40 @@

Source code for graphdoc.prompts

-# system packages
-import logging
+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
 
-# internal packages
-from .single_prompt import *
-from .schema_doc_quality import *
-from .schema_doc_generation import *
+# system packages
+import logging
+from typing import Union
 
 # external packages
 import dspy
 
+from graphdoc.prompts.schema_doc_generation import (
+    BadDocGeneratorSignature,
+    DocGeneratorHelperSignature,
+    DocGeneratorPrompt,
+    DocGeneratorSignature,
+)
+from graphdoc.prompts.schema_doc_quality import (
+    DocQualityDemonstrationSignature,
+    DocQualityPrompt,
+    DocQualitySignature,
+)
+
+# internal packages
+from graphdoc.prompts.single_prompt import SinglePrompt
+
+# logging
+log = logging.getLogger(__name__)
+
 
 
-[docs] +[docs] class PromptFactory:
-[docs] +[docs] @staticmethod def single_prompt( prompt: Union[str, dspy.Signature, dspy.SignatureMeta], @@ -95,19 +112,16 @@

Source code for graphdoc.prompts

         prompt_type: str,
         prompt_metric: Union[str, DocQualityPrompt, SinglePrompt],
     ) -> SinglePrompt:
-        """
-        Returns an instance of the specified prompt class. Allows for the user to pass in their own dspy signature.
-
-        :param prompt: The prompt to use.
-        :type prompt: Union[str, dspy.Signature]
-        :param prompt_class: The class of the prompt to use.
-        :type prompt_class: str
-        :param prompt_type: The type of the prompt to use.
-        :type prompt_type: str
-        :param prompt_metric: The metric to use for the prompt.
-        :type prompt_metric: Union[str, DocQualityPrompt, SinglePrompt]
-        :return: An instance of the specified prompt class.
-        :rtype: SinglePrompt
+        """Returns an instance of the specified prompt class. Allows for the user to
+        pass in their own dspy signature.
+
+        :param prompt: The prompt to use. :type prompt: Union[str, dspy.Signature]
+        :param prompt_class: The class of the prompt to use. :type prompt_class: str
+        :param prompt_type: The type of the prompt to use. :type prompt_type: str :param
+        prompt_metric: The metric to use for the prompt. :type prompt_metric: Union[str,
+        DocQualityPrompt, SinglePrompt] :return: An instance of the specified prompt
+        class. :rtype: SinglePrompt
+
         """
         prompt_classes = {
             "DocQualityPrompt": DocQualityPrompt,
@@ -124,6 +138,19 @@ 

Source code for graphdoc.prompts

             raise ValueError(f"Failed to initialize prompt class ({prompt_class}): {e}")
+ + +__all__ = [ + "BadDocGeneratorSignature", + "DocGeneratorHelperSignature", + "DocGeneratorPrompt", + "DocGeneratorSignature", + "DocQualityDemonstrationSignature", + "DocQualityPrompt", + "DocQualitySignature", + "PromptFactory", + "SinglePrompt", +]
diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_generation.html b/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_generation.html index 4e9daa3..12c46f3 100644 --- a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_generation.html +++ b/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_generation.html @@ -72,19 +72,22 @@

Source code for graphdoc.prompts.schema_doc_generation

-# system packages
+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
 import logging
 from typing import Any, Callable, Dict, List, Literal, Union
 
-# internal packages
-from graphdoc import Parser
-from .single_prompt import SinglePrompt
-from .schema_doc_quality import DocQualityPrompt
-
 # external packages
 import dspy
 from graphql import parse
 
+# internal packages
+from graphdoc.data import Parser
+from graphdoc.prompts.schema_doc_quality import DocQualityPrompt
+from graphdoc.prompts.single_prompt import SinglePrompt
+
 # logging
 log = logging.getLogger(__name__)
 
@@ -93,11 +96,10 @@ 

Source code for graphdoc.prompts.schema_doc_generation

# DSPy Signatures # ###################
-[docs] +[docs] class DocGeneratorSignature(dspy.Signature): """ - ### TASK: - Given a GraphQL Schema, generate a precise description for the columns of the tables in the database. + ### TASK: Given a GraphQL Schema, generate a precise description for the columns of the tables in the database. ### Requirements: - Focus solely on confirmed details from the provided schema. @@ -107,21 +109,21 @@

Source code for graphdoc.prompts.schema_doc_generation

### Formatting - Ensure that the schema maintains proper documentation formatting, as is provided. - """ + + """ # noqa: B950 database_schema: str = dspy.InputField() documented_schema: str = dspy.OutputField( - desc="The database schema with proper documentation, ensuring that the underlying schema is not altered." + desc="The database schema with proper documentation, ensuring that the underlying schema is not altered." # noqa: B950 )
-[docs] +[docs] class DocGeneratorHelperSignature(dspy.Signature): """ - ### TASK: - Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums. + ### TASK: Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums. ### Requirements: - If the field is unclear, and the documentation result is ambiguous, request additional information: "WARNING: Please provide additional information to avoid confusion". @@ -133,21 +135,21 @@

Source code for graphdoc.prompts.schema_doc_generation

### Formatting: - Maintain consistency with the existing documentation style and structure. - Focus on clarity and precision to aid developers and system architects in understanding the schema's components effectively. - """ + + """ # noqa: B950 database_schema: str = dspy.InputField() documented_schema: str = dspy.OutputField( - desc="The database schema with proper documentation, ensuring that the underlying schema is not altered." + desc="The database schema with proper documentation, ensuring that the underlying schema is not altered." # noqa: B950 )
-[docs] +[docs] class BadDocGeneratorSignature(dspy.Signature): """ - ### TASK: - Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database. + ### TASK: Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database. ### Requirements: - Every table, entity, enum, etc. must have at least one column with a description that is obviosly incorrect. @@ -156,27 +158,29 @@

Source code for graphdoc.prompts.schema_doc_generation

### Formatting - Ensure that the schema maintains proper documentation formatting, as is provided. - """ + + """ # noqa: B950 database_schema: str = dspy.InputField() documented_schema: str = dspy.OutputField( - desc="The database schema with intentionally incorrect documentation, ensuring that the underlying schema is not altered." + desc="The database schema with intentionally incorrect documentation, ensuring that the underlying schema is not altered." # noqa: B950 )
-[docs] +[docs] def doc_gen_factory( key: Union[str, dspy.Signature, dspy.SignatureMeta] ) -> Union[dspy.Signature, dspy.SignatureMeta]: - """ - Factory function to return the correct signature based on the key. Currently only supports three signatures (zero_shot_doc_gen, doc_gen_helper, bad_doc_gen). + """Factory function to return the correct signature based on the key. Currently only + supports three signatures (zero_shot_doc_gen, doc_gen_helper, bad_doc_gen). :param key: The key to return the signature for. :type key: Union[str, dspy.Signature] :return: The signature for the given key. :rtype: Union[dspy.Signature, dspy.SignatureMeta] + """ # allow the user to pass in their own dspy signature if isinstance(key, dspy.Signature) or isinstance(key, dspy.SignatureMeta): @@ -197,7 +201,7 @@

Source code for graphdoc.prompts.schema_doc_generation

# Single Prompt Class # #######################
-[docs] +[docs] class DocGeneratorPrompt(SinglePrompt): def __init__( self, @@ -216,12 +220,12 @@

Source code for graphdoc.prompts.schema_doc_generation

# Class Methods # #######################
-[docs] +[docs] def evaluate_documentation_quality( self, schema: dspy.Example, pred: dspy.Prediction, trace=None, scalar=True ) -> int: - """ - Evaluate the quality of the documentation. Utilizes the instantiated metric type to evaluate the quality of the documentation. + """Evaluate the quality of the documentation. Utilizes the instantiated metric + type to evaluate the quality of the documentation. :param schema: The schema to evaluate the documentation for. :type schema: dspy.Example @@ -233,13 +237,15 @@

Source code for graphdoc.prompts.schema_doc_generation

:type scalar: bool :return: The squared score or the full evaluation object. :rtype: int + """ try: gold_schema = parse(schema.database_schema) pred_schema = parse(pred.documented_schema) except Exception as e: log.warning( - f"evaluate_documentation_quality: An exception occurred while parsing the schema: {e}" + f"evaluate_documentation_quality: An exception occurred while " + f"parsing the schema: {e}" ) return 1 if not Parser.schema_equality_check(gold_schema, pred_schema): @@ -261,7 +267,7 @@

Source code for graphdoc.prompts.schema_doc_generation

# Abstract Methods # #######################
-[docs] +[docs] def evaluate_metric( self, example: dspy.Example, prediction: dspy.Prediction, trace=None ) -> Any: @@ -270,7 +276,7 @@

Source code for graphdoc.prompts.schema_doc_generation

-[docs] +[docs] def format_metric( self, examples: List[dspy.Example], @@ -278,17 +284,13 @@

Source code for graphdoc.prompts.schema_doc_generation

results: List, scores: List, ) -> Dict[str, Any]: - """ - Format the metric results into a dictionary. - - :param examples: The examples used to evaluate the metric. - :type examples: List[dspy.Example] - :param overall_score: The overall score of the metric. - :type overall_score: float - :param results: The results of the metric. - :type results: List - :param scores: The scores of the metric. - :type scores: List + """Format the metric results into a dictionary. + + :param examples: The examples used to evaluate the metric. :type examples: + List[dspy.Example] :param overall_score: The overall score of the metric. :type + overall_score: float :param results: The results of the metric. :type results: + List :param scores: The scores of the metric. :type scores: List + """ # TODO: we can expand this to further parse out the results and scores return { @@ -299,19 +301,18 @@

Source code for graphdoc.prompts.schema_doc_generation

-[docs] +[docs] def compare_metrics( self, base_metrics: Any, optimized_metrics: Any, comparison_value: str = "overall_score", ) -> bool: - """ - Compare the base and optimized metrics. + """Compare the base and optimized metrics. + + :param base_metrics: The base metrics. :type base_metrics: Any :param + optimized_metrics: The optimized metrics. - :param base_metrics: The base metrics. - :type base_metrics: Any - :param optimized_metrics: The optimized metrics. """ if comparison_value == "overall_score": return optimized_metrics.get("overall_score", 0) > base_metrics.get( diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_quality.html b/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_quality.html index 2ac3d91..d933975 100644 --- a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_quality.html +++ b/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_quality.html @@ -72,17 +72,20 @@

Source code for graphdoc.prompts.schema_doc_quality

-# system packages
+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
 import logging
 from collections import defaultdict
 from typing import Any, Callable, Dict, List, Literal, Union
 
-# internal packages
-from .single_prompt import SinglePrompt
-
 # external packages
 import dspy
 
+# internal packages
+from graphdoc.prompts.single_prompt import SinglePrompt
+
 # logging
 log = logging.getLogger(__name__)
 
@@ -91,17 +94,19 @@ 

Source code for graphdoc.prompts.schema_doc_quality

# DSPy Signatures # ###################
-[docs] +[docs] class DocQualitySignature(dspy.Signature): """ You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating. + The categories are described as: - perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. - almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement. - poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect. - incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present. Output a number rating that corresponds to the categories described above. - """ + + """ # noqa: B950 database_schema: str = dspy.InputField() category: Literal["perfect", "almost perfect", "poor but correct", "incorrect"] = ( @@ -112,10 +117,11 @@

Source code for graphdoc.prompts.schema_doc_quality

-[docs] +[docs] class DocQualityDemonstrationSignature(dspy.Signature): """ You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating. + The categories are described as: - perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. perfect (4) example: @@ -142,7 +148,8 @@

Source code for graphdoc.prompts.schema_doc_quality

id: Bytes! } Output a number rating that corresponds to the categories described above. - """ + + """ # noqa: B950 database_schema: str = dspy.InputField() category: Literal["perfect", "almost perfect", "poor but correct", "incorrect"] = ( @@ -153,16 +160,17 @@

Source code for graphdoc.prompts.schema_doc_quality

-[docs] +[docs] def doc_quality_factory( key: Union[str, dspy.Signature, dspy.SignatureMeta] ) -> Union[dspy.Signature, dspy.SignatureMeta]: - """ - Factory function to return the correct signature based on the key. Currently only supports two signatures (doc_quality and doc_quality_demo). + """Factory function to return the correct signature based on the key. Currently only + supports two signatures (doc_quality and doc_quality_demo). :param key: The key to return the signature for. :type key: Union[str, dspy.Signature] :return: The signature for the given key. + """ # allow the user to pass in their own dspy signature if isinstance(key, dspy.Signature) or isinstance(key, dspy.SignatureMeta): @@ -182,10 +190,10 @@

Source code for graphdoc.prompts.schema_doc_quality

# Single Prompt Class # #######################
-[docs] +[docs] class DocQualityPrompt(SinglePrompt):
-[docs] +[docs] def __init__( self, prompt: Union[ @@ -199,15 +207,20 @@

Source code for graphdoc.prompts.schema_doc_quality

prompt_metric: Union[Literal["rating", "category"], Callable] = "rating", ) -> None: # TODO: we should think about if we want to add checks on any provided dspy.Signature - """ - Initialize the DocQualityPrompt. This is a single prompt that can be used to evaluate the quality of the documentation for a given schema. This is a wrapper around the SinglePrompt class that implements the abstract methods. - - :param prompt: The prompt to use. Can either be a string that maps to a defined signature, as set in the doc_quality_factory, or a dspy.Signature. - :type prompt: Union[str, dspy.Signature] - :param prompt_type: The type of prompt to use. - :type prompt_type: Union[Literal["predict", "chain_of_thought"], Callable] - :param prompt_metric: The metric to use. Can either be a string that maps to a defined metric, as set in the doc_quality_factory, or a custom callable function. Function must have the signature (example: dspy.Example, prediction: dspy.Prediction) -> bool. - :type prompt_metric: Union[Literal["rating", "category"], Callable] + """Initialize the DocQualityPrompt. This is a single prompt that can be used to + evaluate the quality of the documentation for a given schema. This is a wrapper + around the SinglePrompt class that implements the abstract methods. + + :param prompt: The prompt to use. Can either be a string that maps to a defined + signature, as set in the doc_quality_factory, or a dspy.Signature. :type prompt: + Union[str, dspy.Signature] :param prompt_type: The type of prompt to use. :type + prompt_type: Union[Literal["predict", "chain_of_thought"], Callable] :param + prompt_metric: The metric to use. Can either be a string that maps to a defined + metric, as set in the doc_quality_factory, or a custom callable function. + Function must have the signature (example: dspy.Example, prediction: + dspy.Prediction) -> bool. :type prompt_metric: Union[Literal["rating", + "category"], Callable] + """ prompt_signature = doc_quality_factory(prompt) super().__init__( @@ -234,21 +247,18 @@

Source code for graphdoc.prompts.schema_doc_quality

# Abstract Methods # #######################
-[docs] +[docs] def evaluate_metric( self, example: dspy.Example, prediction: dspy.Prediction, trace=None ) -> bool: - """ - Evaluate the metric for the given example and prediction. - - :param example: The example to evaluate the metric on. - :type example: dspy.Example - :param prediction: The prediction to evaluate the metric on. - :type prediction: dspy.Prediction - :param trace: Used for DSPy. - :type trace: Any + """Evaluate the metric for the given example and prediction. + + :param example: The example to evaluate the metric on. :type example: + dspy.Example :param prediction: The prediction to evaluate the metric on. :type + prediction: dspy.Prediction :param trace: Used for DSPy. :type trace: Any :return: The result of the evaluation. A boolean for if the metric is correct. :rtype: bool + """ evaluation_mapping = { "rating": self._evaluate_rating_metric, @@ -264,7 +274,7 @@

Source code for graphdoc.prompts.schema_doc_quality

-[docs] +[docs] def format_metric( self, examples: List[dspy.Example], @@ -286,12 +296,13 @@

Source code for graphdoc.prompts.schema_doc_quality

:type results: List :param scores: The scores of the evaluation. :type scores: List - :return: A dictionary containing the overall score, per category scores, and details. { "overall_score": 0, "per_category_scores": {}, "details": [], "results": [] } + :return: A dictionary containing the overall score, per category scores, and details. + { "overall_score": 0, "per_category_scores": {}, "details": [], "results": [] } :rtype: Dict[str, Any] """ def _initialize_formatted_results() -> Dict[str, Any]: - """Initialize the results structure with empty containers""" + """Initialize the results structure with empty containers.""" return { "overall_score": overall_score, "per_category_scores": {}, @@ -300,7 +311,7 @@

Source code for graphdoc.prompts.schema_doc_quality

} def _process_single_result(result: tuple, score: Any) -> Dict[str, Any]: - """Process individual result to extract metadata and update statistics""" + """Process individual result to extract metadata and update statistics.""" example, prediction, is_correct = result example_data = dict(example.items()) @@ -322,11 +333,11 @@

Source code for graphdoc.prompts.schema_doc_quality

} def _calculate_percent_correct(correct: int, total: int) -> float: - """Calculate percentage correct with safe division""" + """Calculate percentage correct with safe division.""" return (correct / total) * 100 if total > 0 else 0.0 def _calculate_per_category_scores() -> Dict[str, Dict]: - """Convert category statistics to percentage scores""" + """Convert category statistics to percentage scores.""" return { category: { "percent_correct": _calculate_percent_correct( @@ -355,21 +366,20 @@

Source code for graphdoc.prompts.schema_doc_quality

-[docs] +[docs] def compare_metrics( self, base_metrics: Any, optimized_metrics: Any, comparison_value: str = "overall_score", ) -> bool: - """ - Compare the metrics of the base and optimized models. Returns true if the optimized model is better than the base model. + """Compare the metrics of the base and optimized models. Returns true if the + optimized model is better than the base model. + + :param base_metrics: The metrics of the base model. :type base_metrics: Any + :param optimized_metrics: The metrics of the optimized model. :type + optimized_metrics: Any :param comparison_value: The value to compare. - :param base_metrics: The metrics of the base model. - :type base_metrics: Any - :param optimized_metrics: The metrics of the optimized model. - :type optimized_metrics: Any - :param comparison_value: The value to compare. """ if comparison_value == "overall_score": return optimized_metrics["overall_score"] > base_metrics["overall_score"] diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/single_prompt.html b/graphdoc/docs/_build/html/_modules/graphdoc/prompts/single_prompt.html index dcee441..9c1bdf5 100644 --- a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/single_prompt.html +++ b/graphdoc/docs/_build/html/_modules/graphdoc/prompts/single_prompt.html @@ -72,43 +72,50 @@

Source code for graphdoc.prompts.single_prompt

-# useful tutorial on dspy signatures: https://dspy.ai/tutorials/multihop_search/
+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# useful tutorial on dspy signatures: https://dspy.ai/tutorials/multihop_search/
 
 # system packages
 import logging
 from abc import ABC, abstractmethod
 from typing import Any, Callable, Dict, List, Literal, Union
 
-# internal packages
-
 # external packages
 import dspy
 
+# internal packages
+
+
 # logging
 log = logging.getLogger(__name__)
 
 
 
-[docs] +[docs] class SinglePrompt(ABC):
-[docs] +[docs] def __init__( self, prompt: Union[dspy.Signature, dspy.SignatureMeta], prompt_type: Union[Literal["predict", "chain_of_thought"], Callable], prompt_metric: Any, - # TODO: we should consider adding a DspyDataHelper object here for convenience and tighter coupling + # TODO: we should consider adding a DspyDataHelper object here for convenience + # and tighter coupling ) -> None: - """ - Initialize a single prompt. + """Initialize a single prompt. :param prompt: The prompt to use. :type prompt: dspy.Signature - :param prompt_type: The type of prompt to use. Can be "predict" or "chain_of_thought". Optionally, pass another dspy.Module. + :param prompt_type: The type of prompt to use. Can be "predict" or + "chain_of_thought". Optionally, pass another dspy.Module. :type prompt_type: Union[Literal["predict", "chain_of_thought"], Callable] - :param prompt_metric: The metric to use. Marked as Any for flexibility (as metrics can be other prompts). + :param prompt_metric: The metric to use. Marked as Any for flexibility (as + metrics can be other prompts). :type prompt_metric: Any + """ self.prompt = prompt self.prompt_type = prompt_type @@ -126,7 +133,7 @@

Source code for graphdoc.prompts.single_prompt

) # .get and then we can remove the error elif isinstance(self.prompt_type, Callable): log.warning( - f"Using alternative dspy.Module for inference, please know what you are doing" + "Using alternative dspy.Module for inference, please know what you are doing" ) self.infer = self.prompt_type(self.prompt) else: @@ -137,25 +144,24 @@

Source code for graphdoc.prompts.single_prompt

# methods for evaluating the prompt # #######################################

-[docs] +[docs] @abstractmethod def evaluate_metric( self, example: dspy.Example, prediction: dspy.Prediction, trace=None ) -> Any: """This is the metric used to evalaute the prompt. - :param example: The example to evaluate the metric on. - :type example: dspy.Example - :param prediction: The prediction to evaluate the metric on. - :type prediction: dspy.Prediction - :param trace: The trace to evaluate the metric on. This is for DSPy. - :type trace: Any + :param example: The example to evaluate the metric on. :type example: + dspy.Example :param prediction: The prediction to evaluate the metric on. :type + prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. + This is for DSPy. :type trace: Any + """ pass
-[docs] +[docs] @abstractmethod def format_metric( self, @@ -164,22 +170,21 @@

Source code for graphdoc.prompts.single_prompt

results: List, scores: List, ) -> Dict[str, Any]: - """This takes the results from the evaluate_evalset and does any necessary formatting, taking into account the metric type. - - :param examples: The examples to evaluate the metric on. - :type examples: List[dspy.Example] - :param overall_score: The overall score of the metric. - :type overall_score: float - :param results: The results from the evaluate_evalset. - :type results: List - :param scores: The scores from the evaluate_evalset. - :type scores: List + """This takes the results from the evaluate_evalset and does any necessary + formatting, taking into account the metric type. + + :param examples: The examples to evaluate the metric on. :type examples: + List[dspy.Example] :param overall_score: The overall score of the metric. :type + overall_score: float :param results: The results from the evaluate_evalset. + :type results: List :param scores: The scores from the evaluate_evalset. :type + scores: List + """ pass

-[docs] +[docs] @abstractmethod def compare_metrics( self, @@ -187,22 +192,22 @@

Source code for graphdoc.prompts.single_prompt

optimized_metrics: Any, comparison_value: str = "overall_score", ) -> bool: - """Compare the metrics of the base and optimized models. Return true if the optimized model is better than the base model. - - :param base_metrics: The metrics of the base model. - :type base_metrics: Any - :param optimized_metrics: The metrics of the optimized model. - :type optimized_metrics: Any - :param comparison_value: The value to compare the metrics on. Determines which metric is used to compare the models. - :type comparison_value: str - :return: True if the optimized model is better than the base model, False otherwise. - :rtype: bool + """Compare the metrics of the base and optimized models. Return true if the + optimized model is better than the base model. + + :param base_metrics: The metrics of the base model. :type base_metrics: Any + :param optimized_metrics: The metrics of the optimized model. :type + optimized_metrics: Any :param comparison_value: The value to compare the metrics + on. Determines which metric is used to compare the models. :type + comparison_value: str :return: True if the optimized model is better than the + base model, False otherwise. :rtype: bool + """ pass

-[docs] +[docs] def evaluate_evalset( self, examples: List[dspy.Example], @@ -212,16 +217,14 @@

Source code for graphdoc.prompts.single_prompt

) -> Dict[str, Any]: """Take in a list of examples and evaluate the results. - :param examples: The examples to evaluate the results on. - :type examples: List[dspy.Example] - :param num_threads: The number of threads to use for evaluation. - :type num_threads: int - :param display_progress: Whether to display the progress of the evaluation. - :type display_progress: bool - :param display_table: Whether to display the table of the evaluation. - :type display_table: bool - :return: A dictionary containing the overall score, results, and scores. - :rtype: Dict[str, Any] + :param examples: The examples to evaluate the results on. :type examples: + List[dspy.Example] :param num_threads: The number of threads to use for + evaluation. :type num_threads: int :param display_progress: Whether to display + the progress of the evaluation. :type display_progress: bool :param + display_table: Whether to display the table of the evaluation. :type + display_table: bool :return: A dictionary containing the overall score, results, + and scores. :rtype: Dict[str, Any] + """ evaluator = dspy.Evaluate( devset=examples, @@ -235,7 +238,7 @@

Source code for graphdoc.prompts.single_prompt

overall_score, results, scores = evaluator(self.infer, self.evaluate_metric) # type: ignore return self.format_metric(examples, overall_score, results, scores) # type: ignore except Exception as e: - log.error(f"Error evaluating evalset: {e}") + log.error("Error evaluating evalset: " + str(e)) raise e

diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train.html b/graphdoc/docs/_build/html/_modules/graphdoc/train.html new file mode 100644 index 0000000..f649dd8 --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/train.html @@ -0,0 +1,191 @@ + + + + + + graphdoc.train — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for graphdoc.train

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
+import logging
+from typing import Any, Dict, List
+
+# external packages
+import dspy
+
+# internal packages
+from graphdoc.train.doc_generator_trainer import DocGeneratorTrainer
+from graphdoc.train.doc_quality_trainer import DocQualityTrainer
+from graphdoc.train.optimizers import (
+    _optimizer_kwargs_filter,
+    optimizer_class,
+    optimizer_compile,
+)
+from graphdoc.train.single_prompt_trainer import SinglePrompt, SinglePromptTrainer
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class TrainerFactory: +
+[docs] + @staticmethod + def single_trainer( + trainer_class: str, + prompt: SinglePrompt, + optimizer_type: str, + optimizer_kwargs: Dict[str, Any], + mlflow_tracking_uri: str, + mlflow_model_name: str, + mlflow_experiment_name: str, + trainset: List[dspy.Example], + evalset: List[dspy.Example], + ): + """Returns an instance of the specified trainer class.""" + # update any potentially missing or conflicting values + optimizer_kwargs["metric"] = prompt.evaluate_metric + optimizer_kwargs["student"] = prompt.infer + optimizer_kwargs["trainset"] = trainset + + trainer_classes = { + "DocQualityTrainer": DocQualityTrainer, + "DocGeneratorTrainer": DocGeneratorTrainer, + } + if trainer_class not in trainer_classes: + raise ValueError(f"Unknown trainer class: {trainer_class}") + + try: + return trainer_classes[trainer_class]( + prompt=prompt, # type: ignore # TODO: we should have better type checking here + optimizer_type=optimizer_type, + optimizer_kwargs=optimizer_kwargs, + mlflow_tracking_uri=mlflow_tracking_uri, + mlflow_model_name=mlflow_model_name, + mlflow_experiment_name=mlflow_experiment_name, + trainset=trainset, + evalset=evalset, + ) + except Exception as e: + raise ValueError( + f"Failed to initialize trainer class ({trainer_class}): {e}" + )
+
+ + + +__all__ = [ + "TrainerFactory", + "DocGeneratorTrainer", + "DocQualityTrainer", + "_optimizer_kwargs_filter", + "optimizer_class", + "optimizer_compile", + "SinglePrompt", + "SinglePromptTrainer", + "DocGeneratorTrainer", + "DocQualityTrainer", +] +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_generator_trainer.html b/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_generator_trainer.html new file mode 100644 index 0000000..9eddf9f --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_generator_trainer.html @@ -0,0 +1,321 @@ + + + + + + graphdoc.train.doc_generator_trainer — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for graphdoc.train.doc_generator_trainer

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
+import logging
+import math
+from typing import Any, Dict, List, Optional, Tuple
+
+# external packages
+import dspy
+import mlflow
+
+from graphdoc.data import DspyDataHelper, GenerationDataHelper
+
+# internal packages
+from graphdoc.prompts import DocGeneratorPrompt
+from graphdoc.train.optimizers import optimizer_compile
+from graphdoc.train.single_prompt_trainer import SinglePromptTrainer
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class DocGeneratorTrainer(SinglePromptTrainer): +
+[docs] + def __init__( + self, + prompt: DocGeneratorPrompt, + optimizer_type: str, + optimizer_kwargs: Dict[str, Any], + mlflow_model_name: str, + mlflow_experiment_name: str, + mlflow_tracking_uri: str, + trainset: List[dspy.Example], + evalset: List[dspy.Example], + ): + """Initialize the DocGeneratorTrainer. + + :param prompt: The prompt to train. :type prompt: DocGeneratorPrompt :param + optimizer_type: The type of optimizer to use. :type optimizer_type: str :param + optimizer_kwargs: The keyword arguments for the optimizer. :type + optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model + in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name + of the experiment in mlflow. :type mlflow_experiment_name: str :param + mlflow_tracking_uri: The uri of the mlflow tracking server. :type + mlflow_tracking_uri: str :param trainset: The training set. :type trainset: + List[dspy.Example] :param evalset: The evaluation set. :type evalset: + List[dspy.Example] + + """ + super().__init__( + prompt, + optimizer_type, + optimizer_kwargs, + mlflow_model_name, + mlflow_experiment_name, + mlflow_tracking_uri, + trainset, + evalset, + ) + # Cast to DocGeneratorPrompt for type checking + if not isinstance(prompt, DocGeneratorPrompt): + raise TypeError(f"Expected DocGeneratorPrompt, got {type(prompt)}") + self.doc_generator_prompt = prompt
+ + +
+[docs] + def _calculate_average_score(self, evaluation: dict) -> float: + """Given a dictionary of evaluation results, calculate the average score. + + :param evaluation: The evaluation results. + :type evaluation: Dict[str, Any] + :return: The average score. + :rtype: float + + """ + examples = evaluation["results"] + total = 0 + for ex in examples: + rating = math.sqrt(ex[2]) * 25 + total += rating + return round(total / len(examples), 6)
+ + +
+[docs] + def evaluation_metrics( + self, base_evaluation: Dict[str, Any], optimized_evaluation: Dict[str, Any] + ) -> None: + """Log evaluation metrics to mlflow. + + :param base_evaluation: The evaluation metrics of the base model. :type + base_evaluation: Dict[str, Any] :param optimized_evaluation: The evaluation + metrics of the optimized model. :type optimized_evaluation: Dict[str, Any] + + """ + base_evaluation_overall_score = self._calculate_average_score(base_evaluation) + optimized_evaluation_overall_score = self._calculate_average_score( + optimized_evaluation + ) + + mlflow.log_metrics( + { + "base_evaluation_overall_score": base_evaluation_overall_score, + "optimized_evaluation_overall_score": optimized_evaluation_overall_score, + } + ) + log.info(f"Base Evaluation: {base_evaluation}") + log.info(f"Optimized Evaluation: {optimized_evaluation}") + mlflow.log_dict(base_evaluation, "base_evaluation.json") + mlflow.log_dict(optimized_evaluation, "optimized_evaluation.json")
+ + +
+[docs] + def evaluate_training( + self, base_model, optimized_model + ) -> Tuple[Dict[str, Any], Dict[str, Any]]: + """Evaluate the training of the model. Comparing the base and optimized models. + + :param base_model: The base model. + :type base_model: Any + :param optimized_model: The optimized model. + :type optimized_model: Any + + """ + base_prompt = DocGeneratorPrompt( + prompt=DspyDataHelper.prompt_signature(base_model), + prompt_type=self.doc_generator_prompt.prompt_type, # type: ignore + # TODO: we should have better type checking here + prompt_metric=self.doc_generator_prompt.prompt_metric, # type: ignore + # TODO: we should have better type checking here + ) + + optimized_prompt = DocGeneratorPrompt( + prompt=DspyDataHelper.prompt_signature(optimized_model), + prompt_type=self.doc_generator_prompt.prompt_type, # type: ignore + # TODO: we should have better type checking here + prompt_metric=self.doc_generator_prompt.prompt_metric, # type: ignore + # TODO: we should have better type checking here + ) + + base_evaluation = base_prompt.evaluate_evalset(self.evalset) + optimized_evaluation = optimized_prompt.evaluate_evalset(self.evalset) + + self.evaluation_metrics(base_evaluation, optimized_evaluation) + return base_evaluation, optimized_evaluation
+ + +
+[docs] + def train( + self, load_model_args: Optional[Dict[str, Any]] = None, save_model: bool = True + ): + """Train the document generator model. + + :param load_model_args: The arguments to load the model. :type load_model_args: + Optional[Dict[str, Any]] :param save_model: Whether to save the model. :type + save_model: bool :return: The trained model. :rtype: dspy.ChainOfThought + + """ + # if model args are provided, load the model from mlflow + if load_model_args: + base_model = self.mlflow_data_helper.model_by_args(load_model_args) + else: + base_model = self.doc_generator_prompt.infer + + # make sure the optimizer_kwargs include the student, + # overwriting whatever was provided if necessary + self.optimizer_kwargs["student"] = base_model + + # run the optimizer + log.info(f"Running {self.optimizer_type} optimizer...") + optimized_model = optimizer_compile(self.optimizer_type, self.optimizer_kwargs) + + # evaluate the training + base_evaluation, optimized_evaluation = self.evaluate_training( + base_model, optimized_model + ) + + # log the prompts + base_signature = DspyDataHelper.prompt_signature(base_model) + optimized_signature = DspyDataHelper.prompt_signature(optimized_model) + + base_prompt = DspyDataHelper.formatted_signature( + base_signature, GenerationDataHelper.example_example() + ) + optimized_prompt = DspyDataHelper.formatted_signature( + optimized_signature, GenerationDataHelper.example_example() + ) + + mlflow.log_text(base_prompt, "base_prompt.txt") + mlflow.log_text(optimized_prompt, "optimized_prompt.txt") + + # save the model + if save_model: + model_signature = GenerationDataHelper.model_signature() + self.mlflow_data_helper.save_model( + optimized_model, model_signature, self.mlflow_model_name + ) + + # compare the models + if self.doc_generator_prompt.compare_metrics( + base_evaluation, optimized_evaluation + ): # TODO: we should enable the passing of different comparison metrics + log.info( + "Model training successful, optimized model performs better than base model" + ) + else: + log.info("Trained model did not improve on base model") + + return optimized_model
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_quality_trainer.html b/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_quality_trainer.html new file mode 100644 index 0000000..c1ae651 --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_quality_trainer.html @@ -0,0 +1,320 @@ + + + + + + graphdoc.train.doc_quality_trainer — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for graphdoc.train.doc_quality_trainer

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
+import io
+import logging
+from typing import Any, Dict, List, Optional, Tuple
+
+# external packages
+import dspy
+import mlflow
+import pandas as pd
+
+# internal packages
+from graphdoc.data import DspyDataHelper, QualityDataHelper
+from graphdoc.prompts import DocQualityPrompt
+from graphdoc.train.optimizers import optimizer_compile
+from graphdoc.train.single_prompt_trainer import SinglePromptTrainer
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class DocQualityTrainer(SinglePromptTrainer): +
+[docs] + def __init__( + self, + prompt: DocQualityPrompt, + optimizer_type: str, + optimizer_kwargs: Dict[str, Any], + mlflow_model_name: str, + mlflow_experiment_name: str, + mlflow_tracking_uri: str, + trainset: List[dspy.Example], + evalset: List[dspy.Example], + ): + """Initialize the DocQualityTrainer. This is the base class for implementing a + trainer for a DocQualityPrompt. + + :param prompt: The prompt to train. :type prompt: DocQualityPrompt :param + optimizer_type: The type of optimizer to use. :type optimizer_type: str :param + optimizer_kwargs: The keyword arguments for the optimizer. :type + optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model + in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name + of the experiment in mlflow. :type mlflow_experiment_name: str :param + mlflow_tracking_uri: The uri of the mlflow tracking server. :type + mlflow_tracking_uri: str :param trainset: The training set. + + """ + super().__init__( + prompt=prompt, + optimizer_type=optimizer_type, + optimizer_kwargs=optimizer_kwargs, + mlflow_model_name=mlflow_model_name, + mlflow_experiment_name=mlflow_experiment_name, + mlflow_tracking_uri=mlflow_tracking_uri, + trainset=trainset, + evalset=evalset, + )
+ + + #################### + # Abstract Methods # + #################### +
+[docs] + def evaluation_metrics(self, base_evaluation, optimized_evaluation): + """Log evaluation metrics to mlflow. We will log the overall scores and the per + category scores. Per category scores will be logged as a csv file. + + :param base_evaluation: The evaluation metrics of the base model. :type + base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the + optimized model. :type optimized_evaluation: Any + + """ + base_evaluation_overall_score = base_evaluation["overall_score"] + optimized_evaluation_overall_score = optimized_evaluation["overall_score"] + + mlflow.log_metrics( + { + "base_evaluation_overall_score": base_evaluation_overall_score, + "optimized_evaluation_overall_score": optimized_evaluation_overall_score, + } + ) + + metrics_data = { + "Evaluation Type": ["Base Evaluation", "Optimized Evaluation"], + "Overall Score": [ + base_evaluation_overall_score, + optimized_evaluation_overall_score, + ], + } + + for key, value in base_evaluation["per_category_scores"].items(): + metrics_data[f"{key} Percent Correct"] = [ + value["percent_correct"], + optimized_evaluation["per_category_scores"][key]["percent_correct"], + ] + metrics_data[f"{key} Total"] = [ + value["total"], + optimized_evaluation["per_category_scores"][key]["total"], + ] + metrics_data[f"{key} Correct"] = [ + value["correct"], + optimized_evaluation["per_category_scores"][key]["correct"], + ] + + df = pd.DataFrame(metrics_data) + csv_buffer = io.StringIO() + df.to_csv(csv_buffer, index=False) + mlflow.log_text(csv_buffer.getvalue(), "evaluation_comparison.csv")
+ + +
+[docs] + def evaluate_training( + self, base_model, optimized_model + ) -> Tuple[Dict[str, Any], Dict[str, Any]]: + """Evaluate the training of the model. Comparing the base and optimized models. + + :param base_model: The base model. + :type base_model: Any + :param optimized_model: The optimized model. + :type optimized_model: Any + + """ + base_prompt = DocQualityPrompt( + prompt=DspyDataHelper.prompt_signature(base_model), + prompt_type=self.prompt.prompt_type, # type: ignore + # TODO: we should have better type handling, but we know this works + prompt_metric=self.prompt.prompt_metric, # type: ignore + # TODO: we should have better type handling, but we know this works + ) + + optimized_prompt = DocQualityPrompt( + prompt=DspyDataHelper.prompt_signature(optimized_model), + prompt_type=self.prompt.prompt_type, # type: ignore + # TODO: we should have better type handling, but we know this works + prompt_metric=self.prompt.prompt_metric, # type: ignore + # TODO: we should have better type handling, but we know this works + ) + + base_evaluation = base_prompt.evaluate_evalset(self.evalset) + optimized_evaluation = optimized_prompt.evaluate_evalset(self.evalset) + + self.evaluation_metrics(base_evaluation, optimized_evaluation) + return base_evaluation, optimized_evaluation
+ + +
+[docs] + def train( + self, load_model_args: Optional[Dict[str, Any]] = None, save_model: bool = True + ): + """Train the model. If provided, we will load the model from mlflow. Otherwise, + we will use the provided DocQualityPrompt as the base model. + + :param load_model_args: The arguments to load the model. + :type load_model_args: Dict[str, Any] + :param save_model: Whether to save the model. + :type save_model: bool + + """ + # if model args are provided, load the model from mlflow. + if load_model_args: + # we assume the user wants to load the model as was stored, + # without modifying the module type (e.g. dspy.Predict, dspy.ChainOfThought) + base_model = self.mlflow_data_helper.model_by_args(load_model_args) + else: + base_model = self.prompt.infer + + # make sure the optimizer_kwargs include the student, + # overwriting whatever was provided if necessary + self.optimizer_kwargs["student"] = base_model + + # run the trainer + optimized_model = optimizer_compile(self.optimizer_type, self.optimizer_kwargs) + + # evaluate the training + base_evaluation, optimized_evaluation = self.evaluate_training( + base_model, optimized_model + ) + + # log the prompts + base_signature = DspyDataHelper.prompt_signature(base_model) + optimized_signature = DspyDataHelper.prompt_signature(optimized_model) + + base_prompt = DspyDataHelper.formatted_signature( + base_signature, QualityDataHelper.example_example() + ) + optimized_prompt = DspyDataHelper.formatted_signature( + optimized_signature, QualityDataHelper.example_example() + ) + + mlflow.log_text(base_prompt, "base_prompt.txt") + mlflow.log_text(optimized_prompt, "optimized_prompt.txt") + + # save the model + if save_model: + model_signature = QualityDataHelper.model_signature() + self.mlflow_data_helper.save_model( + optimized_model, model_signature, self.mlflow_model_name + ) + + # compare the models + if self.prompt.compare_metrics(base_evaluation, optimized_evaluation): + log.info( + "Model training successful, optimized model performs better than base model" + ) + else: + log.info("Trained model did not improve on base model") + return optimized_model
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train/optimizers.html b/graphdoc/docs/_build/html/_modules/graphdoc/train/optimizers.html new file mode 100644 index 0000000..0c0eb33 --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/train/optimizers.html @@ -0,0 +1,200 @@ + + + + + + graphdoc.train.optimizers — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for graphdoc.train.optimizers

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+import inspect
+
+# system packages
+import logging
+from typing import Any, Dict
+
+# external packages
+import dspy
+
+# internal packages
+
+
+# logging
+log = logging.getLogger(__name__)
+
+
+def _optimizer_kwargs_filter(init_signature, optimizer_kwargs: Dict[str, Any]):
+    filtered_kwargs = {
+        k: v for k, v in optimizer_kwargs.items() if k in init_signature.parameters
+    }
+    return filtered_kwargs
+
+
+
+[docs] +def optimizer_class(optimizer_type: str, optimizer_kwargs: Dict[str, Any]): + if optimizer_type == "miprov2": + # metric: Callable (this is a function that takes a prediction and an example) + # auto: str ("light", "medium", "heavy") + # ... + return dspy.MIPROv2( + **_optimizer_kwargs_filter( + init_signature=inspect.signature(dspy.MIPROv2.__init__), + optimizer_kwargs=optimizer_kwargs, + ) + ) + elif optimizer_type == "BootstrapFewShotWithRandomSearch": + # metric: Callable (this is a function that takes a prediction and an example) + # teacher_settings (dict, optional): Settings for the teacher predictor. + # Defaults to an empty dictionary. + # max_bootstrapped_demos (int, optional): Maximum number of bootstrapped demonstrations + # per predictor. Defaults to 4. + # max_labeled_demos (int, optional): Maximum number of labeled demonstrations + # per predictor. + # max_rounds (int, optional): Maximum number of bootstrapping rounds. Defaults to 1. + # num_candidate_programs (int): Number of candidate programs to generate + # during random search. + # num_threads (int): Number of threads used for evaluation during random search. + # Defaults to 6. + # max_errors (int): Maximum errors permitted during evaluation. + # Halts run with the latest error message. Defaults to 10. + # stop_at_score (float, optional): Score threshold for random search to stop early. + # Defaults to None. + # metric_threshold (float, optional): Score threshold for the metric to determine + # a successful example. Defaults to None. + return dspy.BootstrapFewShotWithRandomSearch( + **_optimizer_kwargs_filter( + init_signature=inspect.signature( + dspy.BootstrapFewShotWithRandomSearch.__init__ + ), + optimizer_kwargs=optimizer_kwargs, + ) + ) + else: + raise ValueError(f"Invalid optimizer type: {optimizer_type}")
+ + + +
+[docs] +def optimizer_compile(optimizer_type: str, optimizer_kwargs: Dict[str, Any]): + """Compiles the optimizer given the optimizer type and optimizer kwargs. + + Optimizer kwargs are optimizer specific, and must include a student field that maps + to a dspy.ChainOfThought, dspy.Predict, etc. + + """ + optimizer = optimizer_class(optimizer_type, optimizer_kwargs) + # miprov2 + # student: dspy.ChainOfThought, dspy.Predict, etc. + # trainset: List[dspy.Example] + # max_labeled_demos: int + # max_bootstrapped_demos: int + + # BootstrapFewShotWithRandomSearch + # student: dspy.ChainOfThought, dspy.Predict, etc. + # trainset: List[dspy.Example] + return optimizer.compile( + **_optimizer_kwargs_filter( + init_signature=inspect.signature(optimizer.compile), + optimizer_kwargs=optimizer_kwargs, + ) + )
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train/single_prompt_trainer.html b/graphdoc/docs/_build/html/_modules/graphdoc/train/single_prompt_trainer.html new file mode 100644 index 0000000..d9daf28 --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/graphdoc/train/single_prompt_trainer.html @@ -0,0 +1,232 @@ + + + + + + graphdoc.train.single_prompt_trainer — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for graphdoc.train.single_prompt_trainer

+# Copyright 2025-, Semiotic AI, Inc.
+# SPDX-License-Identifier: Apache-2.0
+
+# system packages
+import logging
+from abc import ABC, abstractmethod
+from typing import Any, Dict, List, Optional, Tuple
+
+# external packages
+import dspy
+import mlflow
+
+# internal packages
+from graphdoc.data import MlflowDataHelper
+from graphdoc.prompts import SinglePrompt
+
+# logging
+log = logging.getLogger(__name__)
+
+
+
+[docs] +class SinglePromptTrainer(ABC): +
+[docs] + def __init__( + self, + prompt: SinglePrompt, + optimizer_type: str, + optimizer_kwargs: Dict[str, Any], + mlflow_model_name: str, + mlflow_experiment_name: str, + mlflow_tracking_uri: str, + trainset: List[dspy.Example], + evalset: List[dspy.Example], + ): + """Initialize the SinglePromptTrainer. This is the base class for implementing a + trainer for a single prompt. + + :param prompt: The prompt to train. :type prompt: SinglePrompt :param + optimizer_type: The type of optimizer to use. :type optimizer_type: str :param + optimizer_kwargs: The keyword arguments for the optimizer. :type + optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model + in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name + of the experiment in mlflow. :type mlflow_experiment_name: str :param + mlflow_tracking_uri: The uri of the mlflow tracking server. :type + mlflow_tracking_uri: str :param trainset: The training set. :type trainset: + List[dspy.Example] + + """ + self.prompt = prompt + self.optimizer_type = optimizer_type + self.optimizer_kwargs = optimizer_kwargs + self.mlflow_model_name = mlflow_model_name + self.mlflow_tracking_uri = mlflow_tracking_uri + self.mlflow_experiment_name = mlflow_experiment_name + self.trainset = trainset + self.evalset = evalset + + # setup mlflow + log.info("---------------------------------------------------------") + log.info("Setting MLFlow tracking URI to " + str(self.mlflow_tracking_uri)) + log.info("---------------------------------------------------------") + + mlflow.dspy.autolog() + self.mlflow_data_helper = MlflowDataHelper(self.mlflow_tracking_uri) + experiment = mlflow.set_experiment(self.mlflow_experiment_name) + + log.info("Setting MLFlow experiment to " + str(self.mlflow_experiment_name)) + log.info("Experiment_id: " + str(experiment.experiment_id)) + log.info("Artifact Location: " + str(experiment.artifact_location)) + log.info(f"Tags: {experiment.tags}") + log.info("Lifecycle_stage: " + str(experiment.lifecycle_stage)) + log.info("---------------------------------------------------------")
+ + + #################### + # Abstract Methods # + #################### + + # TODO: decide on a return type and implement better type checking for parameters +
+[docs] + @abstractmethod + def evaluation_metrics(self, base_evaluation, optimized_evaluation): + """Log evaluation metrics to mlflow. + + :param base_evaluation: The evaluation metrics of the base model. :type + base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the + optimized model. :type optimized_evaluation: Any + + """ + pass
+ + +
+[docs] + @abstractmethod + def evaluate_training( + self, base_model, optimized_model + ) -> Tuple[Dict[str, Any], Dict[str, Any]]: + """Evaluate the training of the model. Comparing the base and optimized models. + + :param base_model: The base model. + :type base_model: Any + :param optimized_model: The optimized model. + :type optimized_model: Any + + """ + pass
+ + +
+[docs] + @abstractmethod + def train( + self, load_model_args: Optional[Dict[str, Any]] = None, save_model: bool = True + ): + """Train the model. + + :param load_model_args: The arguments to load the model. + :type load_model_args: Dict[str, Any] + :param save_model: Whether to save the model. + :type save_model: bool + + """ + pass
+
+ +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/index.html b/graphdoc/docs/_build/html/_modules/index.html index 2a746c0..11f2238 100644 --- a/graphdoc/docs/_build/html/_modules/index.html +++ b/graphdoc/docs/_build/html/_modules/index.html @@ -44,8 +44,11 @@
@@ -70,16 +73,28 @@
diff --git a/graphdoc/docs/_build/html/_modules/logging.html b/graphdoc/docs/_build/html/_modules/logging.html new file mode 100644 index 0000000..b6a7bee --- /dev/null +++ b/graphdoc/docs/_build/html/_modules/logging.html @@ -0,0 +1,2430 @@ + + + + + + logging — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for logging

+# Copyright 2001-2022 by Vinay Sajip. All Rights Reserved.
+#
+# Permission to use, copy, modify, and distribute this software and its
+# documentation for any purpose and without fee is hereby granted,
+# provided that the above copyright notice appear in all copies and that
+# both that copyright notice and this permission notice appear in
+# supporting documentation, and that the name of Vinay Sajip
+# not be used in advertising or publicity pertaining to distribution
+# of the software without specific, written prior permission.
+# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+"""
+Logging package for Python. Based on PEP 282 and comments thereto in
+comp.lang.python.
+
+Copyright (C) 2001-2022 Vinay Sajip. All Rights Reserved.
+
+To use, simply 'import logging' and log away!
+"""
+
+import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
+
+from types import GenericAlias
+from string import Template
+from string import Formatter as StrFormatter
+
+
+__all__ = ['BASIC_FORMAT', 'BufferingFormatter', 'CRITICAL', 'DEBUG', 'ERROR',
+           'FATAL', 'FileHandler', 'Filter', 'Formatter', 'Handler', 'INFO',
+           'LogRecord', 'Logger', 'LoggerAdapter', 'NOTSET', 'NullHandler',
+           'StreamHandler', 'WARN', 'WARNING', 'addLevelName', 'basicConfig',
+           'captureWarnings', 'critical', 'debug', 'disable', 'error',
+           'exception', 'fatal', 'getLevelName', 'getLogger', 'getLoggerClass',
+           'info', 'log', 'makeLogRecord', 'setLoggerClass', 'shutdown',
+           'warn', 'warning', 'getLogRecordFactory', 'setLogRecordFactory',
+           'lastResort', 'raiseExceptions', 'getLevelNamesMapping',
+           'getHandlerByName', 'getHandlerNames']
+
+import threading
+
+__author__  = "Vinay Sajip <vinay_sajip@red-dove.com>"
+__status__  = "production"
+# The following module attributes are no longer updated.
+__version__ = "0.5.1.2"
+__date__    = "07 February 2010"
+
+#---------------------------------------------------------------------------
+#   Miscellaneous module data
+#---------------------------------------------------------------------------
+
+#
+#_startTime is used as the base when calculating the relative time of events
+#
+_startTime = time.time_ns()
+
+#
+#raiseExceptions is used to see if exceptions during handling should be
+#propagated
+#
+raiseExceptions = True
+
+#
+# If you don't want threading information in the log, set this to False
+#
+logThreads = True
+
+#
+# If you don't want multiprocessing information in the log, set this to False
+#
+logMultiprocessing = True
+
+#
+# If you don't want process information in the log, set this to False
+#
+logProcesses = True
+
+#
+# If you don't want asyncio task information in the log, set this to False
+#
+logAsyncioTasks = True
+
+#---------------------------------------------------------------------------
+#   Level related stuff
+#---------------------------------------------------------------------------
+#
+# Default levels and level names, these can be replaced with any positive set
+# of values having corresponding names. There is a pseudo-level, NOTSET, which
+# is only really there as a lower limit for user-defined levels. Handlers and
+# loggers are initialized with NOTSET so that they will log all messages, even
+# at user-defined levels.
+#
+
+CRITICAL = 50
+FATAL = CRITICAL
+ERROR = 40
+WARNING = 30
+WARN = WARNING
+INFO = 20
+DEBUG = 10
+NOTSET = 0
+
+_levelToName = {
+    CRITICAL: 'CRITICAL',
+    ERROR: 'ERROR',
+    WARNING: 'WARNING',
+    INFO: 'INFO',
+    DEBUG: 'DEBUG',
+    NOTSET: 'NOTSET',
+}
+_nameToLevel = {
+    'CRITICAL': CRITICAL,
+    'FATAL': FATAL,
+    'ERROR': ERROR,
+    'WARN': WARNING,
+    'WARNING': WARNING,
+    'INFO': INFO,
+    'DEBUG': DEBUG,
+    'NOTSET': NOTSET,
+}
+
+def getLevelNamesMapping():
+    return _nameToLevel.copy()
+
+def getLevelName(level):
+    """
+    Return the textual or numeric representation of logging level 'level'.
+
+    If the level is one of the predefined levels (CRITICAL, ERROR, WARNING,
+    INFO, DEBUG) then you get the corresponding string. If you have
+    associated levels with names using addLevelName then the name you have
+    associated with 'level' is returned.
+
+    If a numeric value corresponding to one of the defined levels is passed
+    in, the corresponding string representation is returned.
+
+    If a string representation of the level is passed in, the corresponding
+    numeric value is returned.
+
+    If no matching numeric or string value is passed in, the string
+    'Level %s' % level is returned.
+    """
+    # See Issues #22386, #27937 and #29220 for why it's this way
+    result = _levelToName.get(level)
+    if result is not None:
+        return result
+    result = _nameToLevel.get(level)
+    if result is not None:
+        return result
+    return "Level %s" % level
+
+def addLevelName(level, levelName):
+    """
+    Associate 'levelName' with 'level'.
+
+    This is used when converting levels to text during message formatting.
+    """
+    with _lock:
+        _levelToName[level] = levelName
+        _nameToLevel[levelName] = level
+
+if hasattr(sys, "_getframe"):
+    currentframe = lambda: sys._getframe(1)
+else: #pragma: no cover
+    def currentframe():
+        """Return the frame object for the caller's stack frame."""
+        try:
+            raise Exception
+        except Exception as exc:
+            return exc.__traceback__.tb_frame.f_back
+
+#
+# _srcfile is used when walking the stack to check when we've got the first
+# caller stack frame, by skipping frames whose filename is that of this
+# module's source. It therefore should contain the filename of this module's
+# source file.
+#
+# Ordinarily we would use __file__ for this, but frozen modules don't always
+# have __file__ set, for some reason (see Issue #21736). Thus, we get the
+# filename from a handy code object from a function defined in this module.
+# (There's no particular reason for picking addLevelName.)
+#
+
+_srcfile = os.path.normcase(addLevelName.__code__.co_filename)
+
+# _srcfile is only used in conjunction with sys._getframe().
+# Setting _srcfile to None will prevent findCaller() from being called. This
+# way, you can avoid the overhead of fetching caller information.
+
+# The following is based on warnings._is_internal_frame. It makes sure that
+# frames of the import mechanism are skipped when logging at module level and
+# using a stacklevel value greater than one.
+def _is_internal_frame(frame):
+    """Signal whether the frame is a CPython or logging module internal."""
+    filename = os.path.normcase(frame.f_code.co_filename)
+    return filename == _srcfile or (
+        "importlib" in filename and "_bootstrap" in filename
+    )
+
+
+def _checkLevel(level):
+    if isinstance(level, int):
+        rv = level
+    elif str(level) == level:
+        if level not in _nameToLevel:
+            raise ValueError("Unknown level: %r" % level)
+        rv = _nameToLevel[level]
+    else:
+        raise TypeError("Level not an integer or a valid string: %r"
+                        % (level,))
+    return rv
+
+#---------------------------------------------------------------------------
+#   Thread-related stuff
+#---------------------------------------------------------------------------
+
+#
+#_lock is used to serialize access to shared data structures in this module.
+#This needs to be an RLock because fileConfig() creates and configures
+#Handlers, and so might arbitrary user threads. Since Handler code updates the
+#shared dictionary _handlers, it needs to acquire the lock. But if configuring,
+#the lock would already have been acquired - so we need an RLock.
+#The same argument applies to Loggers and Manager.loggerDict.
+#
+_lock = threading.RLock()
+
+def _prepareFork():
+    """
+    Prepare to fork a new child process by acquiring the module-level lock.
+
+    This should be used in conjunction with _afterFork().
+    """
+    # Wrap the lock acquisition in a try-except to prevent the lock from being
+    # abandoned in the event of an asynchronous exception. See gh-106238.
+    try:
+        _lock.acquire()
+    except BaseException:
+        _lock.release()
+        raise
+
+def _afterFork():
+    """
+    After a new child process has been forked, release the module-level lock.
+
+    This should be used in conjunction with _prepareFork().
+    """
+    _lock.release()
+
+
+# Prevent a held logging lock from blocking a child from logging.
+
+if not hasattr(os, 'register_at_fork'):  # Windows and friends.
+    def _register_at_fork_reinit_lock(instance):
+        pass  # no-op when os.register_at_fork does not exist.
+else:
+    # A collection of instances with a _at_fork_reinit method (logging.Handler)
+    # to be called in the child after forking.  The weakref avoids us keeping
+    # discarded Handler instances alive.
+    _at_fork_reinit_lock_weakset = weakref.WeakSet()
+
+    def _register_at_fork_reinit_lock(instance):
+        with _lock:
+            _at_fork_reinit_lock_weakset.add(instance)
+
+    def _after_at_fork_child_reinit_locks():
+        for handler in _at_fork_reinit_lock_weakset:
+            handler._at_fork_reinit()
+
+        # _prepareFork() was called in the parent before forking.
+        # The lock is reinitialized to unlocked state.
+        _lock._at_fork_reinit()
+
+    os.register_at_fork(before=_prepareFork,
+                        after_in_child=_after_at_fork_child_reinit_locks,
+                        after_in_parent=_afterFork)
+
+
+#---------------------------------------------------------------------------
+#   The logging record
+#---------------------------------------------------------------------------
+
+class LogRecord(object):
+    """
+    A LogRecord instance represents an event being logged.
+
+    LogRecord instances are created every time something is logged. They
+    contain all the information pertinent to the event being logged. The
+    main information passed in is in msg and args, which are combined
+    using str(msg) % args to create the message field of the record. The
+    record also includes information such as when the record was created,
+    the source line where the logging call was made, and any exception
+    information to be logged.
+    """
+    def __init__(self, name, level, pathname, lineno,
+                 msg, args, exc_info, func=None, sinfo=None, **kwargs):
+        """
+        Initialize a logging record with interesting information.
+        """
+        ct = time.time_ns()
+        self.name = name
+        self.msg = msg
+        #
+        # The following statement allows passing of a dictionary as a sole
+        # argument, so that you can do something like
+        #  logging.debug("a %(a)d b %(b)s", {'a':1, 'b':2})
+        # Suggested by Stefan Behnel.
+        # Note that without the test for args[0], we get a problem because
+        # during formatting, we test to see if the arg is present using
+        # 'if self.args:'. If the event being logged is e.g. 'Value is %d'
+        # and if the passed arg fails 'if self.args:' then no formatting
+        # is done. For example, logger.warning('Value is %d', 0) would log
+        # 'Value is %d' instead of 'Value is 0'.
+        # For the use case of passing a dictionary, this should not be a
+        # problem.
+        # Issue #21172: a request was made to relax the isinstance check
+        # to hasattr(args[0], '__getitem__'). However, the docs on string
+        # formatting still seem to suggest a mapping object is required.
+        # Thus, while not removing the isinstance check, it does now look
+        # for collections.abc.Mapping rather than, as before, dict.
+        if (args and len(args) == 1 and isinstance(args[0], collections.abc.Mapping)
+            and args[0]):
+            args = args[0]
+        self.args = args
+        self.levelname = getLevelName(level)
+        self.levelno = level
+        self.pathname = pathname
+        try:
+            self.filename = os.path.basename(pathname)
+            self.module = os.path.splitext(self.filename)[0]
+        except (TypeError, ValueError, AttributeError):
+            self.filename = pathname
+            self.module = "Unknown module"
+        self.exc_info = exc_info
+        self.exc_text = None      # used to cache the traceback text
+        self.stack_info = sinfo
+        self.lineno = lineno
+        self.funcName = func
+        self.created = ct / 1e9  # ns to float seconds
+        # Get the number of whole milliseconds (0-999) in the fractional part of seconds.
+        # Eg: 1_677_903_920_999_998_503 ns --> 999_998_503 ns--> 999 ms
+        # Convert to float by adding 0.0 for historical reasons. See gh-89047
+        self.msecs = (ct % 1_000_000_000) // 1_000_000 + 0.0
+        if self.msecs == 999.0 and int(self.created) != ct // 1_000_000_000:
+            # ns -> sec conversion can round up, e.g:
+            # 1_677_903_920_999_999_900 ns --> 1_677_903_921.0 sec
+            self.msecs = 0.0
+
+        self.relativeCreated = (ct - _startTime) / 1e6
+        if logThreads:
+            self.thread = threading.get_ident()
+            self.threadName = threading.current_thread().name
+        else: # pragma: no cover
+            self.thread = None
+            self.threadName = None
+        if not logMultiprocessing: # pragma: no cover
+            self.processName = None
+        else:
+            self.processName = 'MainProcess'
+            mp = sys.modules.get('multiprocessing')
+            if mp is not None:
+                # Errors may occur if multiprocessing has not finished loading
+                # yet - e.g. if a custom import hook causes third-party code
+                # to run when multiprocessing calls import. See issue 8200
+                # for an example
+                try:
+                    self.processName = mp.current_process().name
+                except Exception: #pragma: no cover
+                    pass
+        if logProcesses and hasattr(os, 'getpid'):
+            self.process = os.getpid()
+        else:
+            self.process = None
+
+        self.taskName = None
+        if logAsyncioTasks:
+            asyncio = sys.modules.get('asyncio')
+            if asyncio:
+                try:
+                    self.taskName = asyncio.current_task().get_name()
+                except Exception:
+                    pass
+
+    def __repr__(self):
+        return '<LogRecord: %s, %s, %s, %s, "%s">'%(self.name, self.levelno,
+            self.pathname, self.lineno, self.msg)
+
+    def getMessage(self):
+        """
+        Return the message for this LogRecord.
+
+        Return the message for this LogRecord after merging any user-supplied
+        arguments with the message.
+        """
+        msg = str(self.msg)
+        if self.args:
+            msg = msg % self.args
+        return msg
+
+#
+#   Determine which class to use when instantiating log records.
+#
+_logRecordFactory = LogRecord
+
+def setLogRecordFactory(factory):
+    """
+    Set the factory to be used when instantiating a log record.
+
+    :param factory: A callable which will be called to instantiate
+    a log record.
+    """
+    global _logRecordFactory
+    _logRecordFactory = factory
+
+def getLogRecordFactory():
+    """
+    Return the factory to be used when instantiating a log record.
+    """
+
+    return _logRecordFactory
+
+def makeLogRecord(dict):
+    """
+    Make a LogRecord whose attributes are defined by the specified dictionary,
+    This function is useful for converting a logging event received over
+    a socket connection (which is sent as a dictionary) into a LogRecord
+    instance.
+    """
+    rv = _logRecordFactory(None, None, "", 0, "", (), None, None)
+    rv.__dict__.update(dict)
+    return rv
+
+
+#---------------------------------------------------------------------------
+#   Formatter classes and functions
+#---------------------------------------------------------------------------
+_str_formatter = StrFormatter()
+del StrFormatter
+
+
+class PercentStyle(object):
+
+    default_format = '%(message)s'
+    asctime_format = '%(asctime)s'
+    asctime_search = '%(asctime)'
+    validation_pattern = re.compile(r'%\(\w+\)[#0+ -]*(\*|\d+)?(\.(\*|\d+))?[diouxefgcrsa%]', re.I)
+
+    def __init__(self, fmt, *, defaults=None):
+        self._fmt = fmt or self.default_format
+        self._defaults = defaults
+
+    def usesTime(self):
+        return self._fmt.find(self.asctime_search) >= 0
+
+    def validate(self):
+        """Validate the input format, ensure it matches the correct style"""
+        if not self.validation_pattern.search(self._fmt):
+            raise ValueError("Invalid format '%s' for '%s' style" % (self._fmt, self.default_format[0]))
+
+    def _format(self, record):
+        if defaults := self._defaults:
+            values = defaults | record.__dict__
+        else:
+            values = record.__dict__
+        return self._fmt % values
+
+    def format(self, record):
+        try:
+            return self._format(record)
+        except KeyError as e:
+            raise ValueError('Formatting field not found in record: %s' % e)
+
+
+class StrFormatStyle(PercentStyle):
+    default_format = '{message}'
+    asctime_format = '{asctime}'
+    asctime_search = '{asctime'
+
+    fmt_spec = re.compile(r'^(.?[<>=^])?[+ -]?#?0?(\d+|{\w+})?[,_]?(\.(\d+|{\w+}))?[bcdefgnosx%]?$', re.I)
+    field_spec = re.compile(r'^(\d+|\w+)(\.\w+|\[[^]]+\])*$')
+
+    def _format(self, record):
+        if defaults := self._defaults:
+            values = defaults | record.__dict__
+        else:
+            values = record.__dict__
+        return self._fmt.format(**values)
+
+    def validate(self):
+        """Validate the input format, ensure it is the correct string formatting style"""
+        fields = set()
+        try:
+            for _, fieldname, spec, conversion in _str_formatter.parse(self._fmt):
+                if fieldname:
+                    if not self.field_spec.match(fieldname):
+                        raise ValueError('invalid field name/expression: %r' % fieldname)
+                    fields.add(fieldname)
+                if conversion and conversion not in 'rsa':
+                    raise ValueError('invalid conversion: %r' % conversion)
+                if spec and not self.fmt_spec.match(spec):
+                    raise ValueError('bad specifier: %r' % spec)
+        except ValueError as e:
+            raise ValueError('invalid format: %s' % e)
+        if not fields:
+            raise ValueError('invalid format: no fields')
+
+
+class StringTemplateStyle(PercentStyle):
+    default_format = '${message}'
+    asctime_format = '${asctime}'
+    asctime_search = '${asctime}'
+
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        self._tpl = Template(self._fmt)
+
+    def usesTime(self):
+        fmt = self._fmt
+        return fmt.find('$asctime') >= 0 or fmt.find(self.asctime_search) >= 0
+
+    def validate(self):
+        pattern = Template.pattern
+        fields = set()
+        for m in pattern.finditer(self._fmt):
+            d = m.groupdict()
+            if d['named']:
+                fields.add(d['named'])
+            elif d['braced']:
+                fields.add(d['braced'])
+            elif m.group(0) == '$':
+                raise ValueError('invalid format: bare \'$\' not allowed')
+        if not fields:
+            raise ValueError('invalid format: no fields')
+
+    def _format(self, record):
+        if defaults := self._defaults:
+            values = defaults | record.__dict__
+        else:
+            values = record.__dict__
+        return self._tpl.substitute(**values)
+
+
+BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s"
+
+_STYLES = {
+    '%': (PercentStyle, BASIC_FORMAT),
+    '{': (StrFormatStyle, '{levelname}:{name}:{message}'),
+    '$': (StringTemplateStyle, '${levelname}:${name}:${message}'),
+}
+
+class Formatter(object):
+    """
+    Formatter instances are used to convert a LogRecord to text.
+
+    Formatters need to know how a LogRecord is constructed. They are
+    responsible for converting a LogRecord to (usually) a string which can
+    be interpreted by either a human or an external system. The base Formatter
+    allows a formatting string to be specified. If none is supplied, the
+    style-dependent default value, "%(message)s", "{message}", or
+    "${message}", is used.
+
+    The Formatter can be initialized with a format string which makes use of
+    knowledge of the LogRecord attributes - e.g. the default value mentioned
+    above makes use of the fact that the user's message and arguments are pre-
+    formatted into a LogRecord's message attribute. Currently, the useful
+    attributes in a LogRecord are described by:
+
+    %(name)s            Name of the logger (logging channel)
+    %(levelno)s         Numeric logging level for the message (DEBUG, INFO,
+                        WARNING, ERROR, CRITICAL)
+    %(levelname)s       Text logging level for the message ("DEBUG", "INFO",
+                        "WARNING", "ERROR", "CRITICAL")
+    %(pathname)s        Full pathname of the source file where the logging
+                        call was issued (if available)
+    %(filename)s        Filename portion of pathname
+    %(module)s          Module (name portion of filename)
+    %(lineno)d          Source line number where the logging call was issued
+                        (if available)
+    %(funcName)s        Function name
+    %(created)f         Time when the LogRecord was created (time.time_ns() / 1e9
+                        return value)
+    %(asctime)s         Textual time when the LogRecord was created
+    %(msecs)d           Millisecond portion of the creation time
+    %(relativeCreated)d Time in milliseconds when the LogRecord was created,
+                        relative to the time the logging module was loaded
+                        (typically at application startup time)
+    %(thread)d          Thread ID (if available)
+    %(threadName)s      Thread name (if available)
+    %(taskName)s        Task name (if available)
+    %(process)d         Process ID (if available)
+    %(message)s         The result of record.getMessage(), computed just as
+                        the record is emitted
+    """
+
+    converter = time.localtime
+
+    def __init__(self, fmt=None, datefmt=None, style='%', validate=True, *,
+                 defaults=None):
+        """
+        Initialize the formatter with specified format strings.
+
+        Initialize the formatter either with the specified format string, or a
+        default as described above. Allow for specialized date formatting with
+        the optional datefmt argument. If datefmt is omitted, you get an
+        ISO8601-like (or RFC 3339-like) format.
+
+        Use a style parameter of '%', '{' or '$' to specify that you want to
+        use one of %-formatting, :meth:`str.format` (``{}``) formatting or
+        :class:`string.Template` formatting in your format string.
+
+        .. versionchanged:: 3.2
+           Added the ``style`` parameter.
+        """
+        if style not in _STYLES:
+            raise ValueError('Style must be one of: %s' % ','.join(
+                             _STYLES.keys()))
+        self._style = _STYLES[style][0](fmt, defaults=defaults)
+        if validate:
+            self._style.validate()
+
+        self._fmt = self._style._fmt
+        self.datefmt = datefmt
+
+    default_time_format = '%Y-%m-%d %H:%M:%S'
+    default_msec_format = '%s,%03d'
+
+    def formatTime(self, record, datefmt=None):
+        """
+        Return the creation time of the specified LogRecord as formatted text.
+
+        This method should be called from format() by a formatter which
+        wants to make use of a formatted time. This method can be overridden
+        in formatters to provide for any specific requirement, but the
+        basic behaviour is as follows: if datefmt (a string) is specified,
+        it is used with time.strftime() to format the creation time of the
+        record. Otherwise, an ISO8601-like (or RFC 3339-like) format is used.
+        The resulting string is returned. This function uses a user-configurable
+        function to convert the creation time to a tuple. By default,
+        time.localtime() is used; to change this for a particular formatter
+        instance, set the 'converter' attribute to a function with the same
+        signature as time.localtime() or time.gmtime(). To change it for all
+        formatters, for example if you want all logging times to be shown in GMT,
+        set the 'converter' attribute in the Formatter class.
+        """
+        ct = self.converter(record.created)
+        if datefmt:
+            s = time.strftime(datefmt, ct)
+        else:
+            s = time.strftime(self.default_time_format, ct)
+            if self.default_msec_format:
+                s = self.default_msec_format % (s, record.msecs)
+        return s
+
+    def formatException(self, ei):
+        """
+        Format and return the specified exception information as a string.
+
+        This default implementation just uses
+        traceback.print_exception()
+        """
+        sio = io.StringIO()
+        tb = ei[2]
+        # See issues #9427, #1553375. Commented out for now.
+        #if getattr(self, 'fullstack', False):
+        #    traceback.print_stack(tb.tb_frame.f_back, file=sio)
+        traceback.print_exception(ei[0], ei[1], tb, limit=None, file=sio)
+        s = sio.getvalue()
+        sio.close()
+        if s[-1:] == "\n":
+            s = s[:-1]
+        return s
+
+    def usesTime(self):
+        """
+        Check if the format uses the creation time of the record.
+        """
+        return self._style.usesTime()
+
+    def formatMessage(self, record):
+        return self._style.format(record)
+
+    def formatStack(self, stack_info):
+        """
+        This method is provided as an extension point for specialized
+        formatting of stack information.
+
+        The input data is a string as returned from a call to
+        :func:`traceback.print_stack`, but with the last trailing newline
+        removed.
+
+        The base implementation just returns the value passed in.
+        """
+        return stack_info
+
+    def format(self, record):
+        """
+        Format the specified record as text.
+
+        The record's attribute dictionary is used as the operand to a
+        string formatting operation which yields the returned string.
+        Before formatting the dictionary, a couple of preparatory steps
+        are carried out. The message attribute of the record is computed
+        using LogRecord.getMessage(). If the formatting string uses the
+        time (as determined by a call to usesTime(), formatTime() is
+        called to format the event time. If there is exception information,
+        it is formatted using formatException() and appended to the message.
+        """
+        record.message = record.getMessage()
+        if self.usesTime():
+            record.asctime = self.formatTime(record, self.datefmt)
+        s = self.formatMessage(record)
+        if record.exc_info:
+            # Cache the traceback text to avoid converting it multiple times
+            # (it's constant anyway)
+            if not record.exc_text:
+                record.exc_text = self.formatException(record.exc_info)
+        if record.exc_text:
+            if s[-1:] != "\n":
+                s = s + "\n"
+            s = s + record.exc_text
+        if record.stack_info:
+            if s[-1:] != "\n":
+                s = s + "\n"
+            s = s + self.formatStack(record.stack_info)
+        return s
+
+#
+#   The default formatter to use when no other is specified
+#
+_defaultFormatter = Formatter()
+
+class BufferingFormatter(object):
+    """
+    A formatter suitable for formatting a number of records.
+    """
+    def __init__(self, linefmt=None):
+        """
+        Optionally specify a formatter which will be used to format each
+        individual record.
+        """
+        if linefmt:
+            self.linefmt = linefmt
+        else:
+            self.linefmt = _defaultFormatter
+
+    def formatHeader(self, records):
+        """
+        Return the header string for the specified records.
+        """
+        return ""
+
+    def formatFooter(self, records):
+        """
+        Return the footer string for the specified records.
+        """
+        return ""
+
+    def format(self, records):
+        """
+        Format the specified records and return the result as a string.
+        """
+        rv = ""
+        if len(records) > 0:
+            rv = rv + self.formatHeader(records)
+            for record in records:
+                rv = rv + self.linefmt.format(record)
+            rv = rv + self.formatFooter(records)
+        return rv
+
+#---------------------------------------------------------------------------
+#   Filter classes and functions
+#---------------------------------------------------------------------------
+
+class Filter(object):
+    """
+    Filter instances are used to perform arbitrary filtering of LogRecords.
+
+    Loggers and Handlers can optionally use Filter instances to filter
+    records as desired. The base filter class only allows events which are
+    below a certain point in the logger hierarchy. For example, a filter
+    initialized with "A.B" will allow events logged by loggers "A.B",
+    "A.B.C", "A.B.C.D", "A.B.D" etc. but not "A.BB", "B.A.B" etc. If
+    initialized with the empty string, all events are passed.
+    """
+    def __init__(self, name=''):
+        """
+        Initialize a filter.
+
+        Initialize with the name of the logger which, together with its
+        children, will have its events allowed through the filter. If no
+        name is specified, allow every event.
+        """
+        self.name = name
+        self.nlen = len(name)
+
+    def filter(self, record):
+        """
+        Determine if the specified record is to be logged.
+
+        Returns True if the record should be logged, or False otherwise.
+        If deemed appropriate, the record may be modified in-place.
+        """
+        if self.nlen == 0:
+            return True
+        elif self.name == record.name:
+            return True
+        elif record.name.find(self.name, 0, self.nlen) != 0:
+            return False
+        return (record.name[self.nlen] == ".")
+
+class Filterer(object):
+    """
+    A base class for loggers and handlers which allows them to share
+    common code.
+    """
+    def __init__(self):
+        """
+        Initialize the list of filters to be an empty list.
+        """
+        self.filters = []
+
+    def addFilter(self, filter):
+        """
+        Add the specified filter to this handler.
+        """
+        if not (filter in self.filters):
+            self.filters.append(filter)
+
+    def removeFilter(self, filter):
+        """
+        Remove the specified filter from this handler.
+        """
+        if filter in self.filters:
+            self.filters.remove(filter)
+
+    def filter(self, record):
+        """
+        Determine if a record is loggable by consulting all the filters.
+
+        The default is to allow the record to be logged; any filter can veto
+        this by returning a false value.
+        If a filter attached to a handler returns a log record instance,
+        then that instance is used in place of the original log record in
+        any further processing of the event by that handler.
+        If a filter returns any other true value, the original log record
+        is used in any further processing of the event by that handler.
+
+        If none of the filters return false values, this method returns
+        a log record.
+        If any of the filters return a false value, this method returns
+        a false value.
+
+        .. versionchanged:: 3.2
+
+           Allow filters to be just callables.
+
+        .. versionchanged:: 3.12
+           Allow filters to return a LogRecord instead of
+           modifying it in place.
+        """
+        for f in self.filters:
+            if hasattr(f, 'filter'):
+                result = f.filter(record)
+            else:
+                result = f(record) # assume callable - will raise if not
+            if not result:
+                return False
+            if isinstance(result, LogRecord):
+                record = result
+        return record
+
+#---------------------------------------------------------------------------
+#   Handler classes and functions
+#---------------------------------------------------------------------------
+
+_handlers = weakref.WeakValueDictionary()  #map of handler names to handlers
+_handlerList = [] # added to allow handlers to be removed in reverse of order initialized
+
+def _removeHandlerRef(wr):
+    """
+    Remove a handler reference from the internal cleanup list.
+    """
+    # This function can be called during module teardown, when globals are
+    # set to None. It can also be called from another thread. So we need to
+    # pre-emptively grab the necessary globals and check if they're None,
+    # to prevent race conditions and failures during interpreter shutdown.
+    handlers, lock = _handlerList, _lock
+    if lock and handlers:
+        with lock:
+            try:
+                handlers.remove(wr)
+            except ValueError:
+                pass
+
+def _addHandlerRef(handler):
+    """
+    Add a handler to the internal cleanup list using a weak reference.
+    """
+    with _lock:
+        _handlerList.append(weakref.ref(handler, _removeHandlerRef))
+
+
+def getHandlerByName(name):
+    """
+    Get a handler with the specified *name*, or None if there isn't one with
+    that name.
+    """
+    return _handlers.get(name)
+
+
+def getHandlerNames():
+    """
+    Return all known handler names as an immutable set.
+    """
+    return frozenset(_handlers)
+
+
+class Handler(Filterer):
+    """
+    Handler instances dispatch logging events to specific destinations.
+
+    The base handler class. Acts as a placeholder which defines the Handler
+    interface. Handlers can optionally use Formatter instances to format
+    records as desired. By default, no formatter is specified; in this case,
+    the 'raw' message as determined by record.message is logged.
+    """
+    def __init__(self, level=NOTSET):
+        """
+        Initializes the instance - basically setting the formatter to None
+        and the filter list to empty.
+        """
+        Filterer.__init__(self)
+        self._name = None
+        self.level = _checkLevel(level)
+        self.formatter = None
+        self._closed = False
+        # Add the handler to the global _handlerList (for cleanup on shutdown)
+        _addHandlerRef(self)
+        self.createLock()
+
+    def get_name(self):
+        return self._name
+
+    def set_name(self, name):
+        with _lock:
+            if self._name in _handlers:
+                del _handlers[self._name]
+            self._name = name
+            if name:
+                _handlers[name] = self
+
+    name = property(get_name, set_name)
+
+    def createLock(self):
+        """
+        Acquire a thread lock for serializing access to the underlying I/O.
+        """
+        self.lock = threading.RLock()
+        _register_at_fork_reinit_lock(self)
+
+    def _at_fork_reinit(self):
+        self.lock._at_fork_reinit()
+
+    def acquire(self):
+        """
+        Acquire the I/O thread lock.
+        """
+        if self.lock:
+            self.lock.acquire()
+
+    def release(self):
+        """
+        Release the I/O thread lock.
+        """
+        if self.lock:
+            self.lock.release()
+
+    def setLevel(self, level):
+        """
+        Set the logging level of this handler.  level must be an int or a str.
+        """
+        self.level = _checkLevel(level)
+
+    def format(self, record):
+        """
+        Format the specified record.
+
+        If a formatter is set, use it. Otherwise, use the default formatter
+        for the module.
+        """
+        if self.formatter:
+            fmt = self.formatter
+        else:
+            fmt = _defaultFormatter
+        return fmt.format(record)
+
+    def emit(self, record):
+        """
+        Do whatever it takes to actually log the specified logging record.
+
+        This version is intended to be implemented by subclasses and so
+        raises a NotImplementedError.
+        """
+        raise NotImplementedError('emit must be implemented '
+                                  'by Handler subclasses')
+
+    def handle(self, record):
+        """
+        Conditionally emit the specified logging record.
+
+        Emission depends on filters which may have been added to the handler.
+        Wrap the actual emission of the record with acquisition/release of
+        the I/O thread lock.
+
+        Returns an instance of the log record that was emitted
+        if it passed all filters, otherwise a false value is returned.
+        """
+        rv = self.filter(record)
+        if isinstance(rv, LogRecord):
+            record = rv
+        if rv:
+            with self.lock:
+                self.emit(record)
+        return rv
+
+    def setFormatter(self, fmt):
+        """
+        Set the formatter for this handler.
+        """
+        self.formatter = fmt
+
+    def flush(self):
+        """
+        Ensure all logging output has been flushed.
+
+        This version does nothing and is intended to be implemented by
+        subclasses.
+        """
+        pass
+
+    def close(self):
+        """
+        Tidy up any resources used by the handler.
+
+        This version removes the handler from an internal map of handlers,
+        _handlers, which is used for handler lookup by name. Subclasses
+        should ensure that this gets called from overridden close()
+        methods.
+        """
+        #get the module data lock, as we're updating a shared structure.
+        with _lock:
+            self._closed = True
+            if self._name and self._name in _handlers:
+                del _handlers[self._name]
+
+    def handleError(self, record):
+        """
+        Handle errors which occur during an emit() call.
+
+        This method should be called from handlers when an exception is
+        encountered during an emit() call. If raiseExceptions is false,
+        exceptions get silently ignored. This is what is mostly wanted
+        for a logging system - most users will not care about errors in
+        the logging system, they are more interested in application errors.
+        You could, however, replace this with a custom handler if you wish.
+        The record which was being processed is passed in to this method.
+        """
+        if raiseExceptions and sys.stderr:  # see issue 13807
+            exc = sys.exception()
+            try:
+                sys.stderr.write('--- Logging error ---\n')
+                traceback.print_exception(exc, limit=None, file=sys.stderr)
+                sys.stderr.write('Call stack:\n')
+                # Walk the stack frame up until we're out of logging,
+                # so as to print the calling context.
+                frame = exc.__traceback__.tb_frame
+                while (frame and os.path.dirname(frame.f_code.co_filename) ==
+                       __path__[0]):
+                    frame = frame.f_back
+                if frame:
+                    traceback.print_stack(frame, file=sys.stderr)
+                else:
+                    # couldn't find the right stack frame, for some reason
+                    sys.stderr.write('Logged from file %s, line %s\n' % (
+                                     record.filename, record.lineno))
+                # Issue 18671: output logging message and arguments
+                try:
+                    sys.stderr.write('Message: %r\n'
+                                     'Arguments: %s\n' % (record.msg,
+                                                          record.args))
+                except RecursionError:  # See issue 36272
+                    raise
+                except Exception:
+                    sys.stderr.write('Unable to print the message and arguments'
+                                     ' - possible formatting error.\nUse the'
+                                     ' traceback above to help find the error.\n'
+                                    )
+            except OSError: #pragma: no cover
+                pass    # see issue 5971
+            finally:
+                del exc
+
+    def __repr__(self):
+        level = getLevelName(self.level)
+        return '<%s (%s)>' % (self.__class__.__name__, level)
+
+class StreamHandler(Handler):
+    """
+    A handler class which writes logging records, appropriately formatted,
+    to a stream. Note that this class does not close the stream, as
+    sys.stdout or sys.stderr may be used.
+    """
+
+    terminator = '\n'
+
+    def __init__(self, stream=None):
+        """
+        Initialize the handler.
+
+        If stream is not specified, sys.stderr is used.
+        """
+        Handler.__init__(self)
+        if stream is None:
+            stream = sys.stderr
+        self.stream = stream
+
+    def flush(self):
+        """
+        Flushes the stream.
+        """
+        with self.lock:
+            if self.stream and hasattr(self.stream, "flush"):
+                self.stream.flush()
+
+    def emit(self, record):
+        """
+        Emit a record.
+
+        If a formatter is specified, it is used to format the record.
+        The record is then written to the stream with a trailing newline.  If
+        exception information is present, it is formatted using
+        traceback.print_exception and appended to the stream.  If the stream
+        has an 'encoding' attribute, it is used to determine how to do the
+        output to the stream.
+        """
+        try:
+            msg = self.format(record)
+            stream = self.stream
+            # issue 35046: merged two stream.writes into one.
+            stream.write(msg + self.terminator)
+            self.flush()
+        except RecursionError:  # See issue 36272
+            raise
+        except Exception:
+            self.handleError(record)
+
+    def setStream(self, stream):
+        """
+        Sets the StreamHandler's stream to the specified value,
+        if it is different.
+
+        Returns the old stream, if the stream was changed, or None
+        if it wasn't.
+        """
+        if stream is self.stream:
+            result = None
+        else:
+            result = self.stream
+            with self.lock:
+                self.flush()
+                self.stream = stream
+        return result
+
+    def __repr__(self):
+        level = getLevelName(self.level)
+        name = getattr(self.stream, 'name', '')
+        #  bpo-36015: name can be an int
+        name = str(name)
+        if name:
+            name += ' '
+        return '<%s %s(%s)>' % (self.__class__.__name__, name, level)
+
+    __class_getitem__ = classmethod(GenericAlias)
+
+
+class FileHandler(StreamHandler):
+    """
+    A handler class which writes formatted logging records to disk files.
+    """
+    def __init__(self, filename, mode='a', encoding=None, delay=False, errors=None):
+        """
+        Open the specified file and use it as the stream for logging.
+        """
+        # Issue #27493: add support for Path objects to be passed in
+        filename = os.fspath(filename)
+        #keep the absolute path, otherwise derived classes which use this
+        #may come a cropper when the current directory changes
+        self.baseFilename = os.path.abspath(filename)
+        self.mode = mode
+        self.encoding = encoding
+        if "b" not in mode:
+            self.encoding = io.text_encoding(encoding)
+        self.errors = errors
+        self.delay = delay
+        # bpo-26789: FileHandler keeps a reference to the builtin open()
+        # function to be able to open or reopen the file during Python
+        # finalization.
+        self._builtin_open = open
+        if delay:
+            #We don't open the stream, but we still need to call the
+            #Handler constructor to set level, formatter, lock etc.
+            Handler.__init__(self)
+            self.stream = None
+        else:
+            StreamHandler.__init__(self, self._open())
+
+    def close(self):
+        """
+        Closes the stream.
+        """
+        with self.lock:
+            try:
+                if self.stream:
+                    try:
+                        self.flush()
+                    finally:
+                        stream = self.stream
+                        self.stream = None
+                        if hasattr(stream, "close"):
+                            stream.close()
+            finally:
+                # Issue #19523: call unconditionally to
+                # prevent a handler leak when delay is set
+                # Also see Issue #42378: we also rely on
+                # self._closed being set to True there
+                StreamHandler.close(self)
+
+    def _open(self):
+        """
+        Open the current base file with the (original) mode and encoding.
+        Return the resulting stream.
+        """
+        open_func = self._builtin_open
+        return open_func(self.baseFilename, self.mode,
+                         encoding=self.encoding, errors=self.errors)
+
+    def emit(self, record):
+        """
+        Emit a record.
+
+        If the stream was not opened because 'delay' was specified in the
+        constructor, open it before calling the superclass's emit.
+
+        If stream is not open, current mode is 'w' and `_closed=True`, record
+        will not be emitted (see Issue #42378).
+        """
+        if self.stream is None:
+            if self.mode != 'w' or not self._closed:
+                self.stream = self._open()
+        if self.stream:
+            StreamHandler.emit(self, record)
+
+    def __repr__(self):
+        level = getLevelName(self.level)
+        return '<%s %s (%s)>' % (self.__class__.__name__, self.baseFilename, level)
+
+
+class _StderrHandler(StreamHandler):
+    """
+    This class is like a StreamHandler using sys.stderr, but always uses
+    whatever sys.stderr is currently set to rather than the value of
+    sys.stderr at handler construction time.
+    """
+    def __init__(self, level=NOTSET):
+        """
+        Initialize the handler.
+        """
+        Handler.__init__(self, level)
+
+    @property
+    def stream(self):
+        return sys.stderr
+
+
+_defaultLastResort = _StderrHandler(WARNING)
+lastResort = _defaultLastResort
+
+#---------------------------------------------------------------------------
+#   Manager classes and functions
+#---------------------------------------------------------------------------
+
+class PlaceHolder(object):
+    """
+    PlaceHolder instances are used in the Manager logger hierarchy to take
+    the place of nodes for which no loggers have been defined. This class is
+    intended for internal use only and not as part of the public API.
+    """
+    def __init__(self, alogger):
+        """
+        Initialize with the specified logger being a child of this placeholder.
+        """
+        self.loggerMap = { alogger : None }
+
+    def append(self, alogger):
+        """
+        Add the specified logger as a child of this placeholder.
+        """
+        if alogger not in self.loggerMap:
+            self.loggerMap[alogger] = None
+
+#
+#   Determine which class to use when instantiating loggers.
+#
+
+def setLoggerClass(klass):
+    """
+    Set the class to be used when instantiating a logger. The class should
+    define __init__() such that only a name argument is required, and the
+    __init__() should call Logger.__init__()
+    """
+    if klass != Logger:
+        if not issubclass(klass, Logger):
+            raise TypeError("logger not derived from logging.Logger: "
+                            + klass.__name__)
+    global _loggerClass
+    _loggerClass = klass
+
+def getLoggerClass():
+    """
+    Return the class to be used when instantiating a logger.
+    """
+    return _loggerClass
+
+class Manager(object):
+    """
+    There is [under normal circumstances] just one Manager instance, which
+    holds the hierarchy of loggers.
+    """
+    def __init__(self, rootnode):
+        """
+        Initialize the manager with the root node of the logger hierarchy.
+        """
+        self.root = rootnode
+        self.disable = 0
+        self.emittedNoHandlerWarning = False
+        self.loggerDict = {}
+        self.loggerClass = None
+        self.logRecordFactory = None
+
+    @property
+    def disable(self):
+        return self._disable
+
+    @disable.setter
+    def disable(self, value):
+        self._disable = _checkLevel(value)
+
+    def getLogger(self, name):
+        """
+        Get a logger with the specified name (channel name), creating it
+        if it doesn't yet exist. This name is a dot-separated hierarchical
+        name, such as "a", "a.b", "a.b.c" or similar.
+
+        If a PlaceHolder existed for the specified name [i.e. the logger
+        didn't exist but a child of it did], replace it with the created
+        logger and fix up the parent/child references which pointed to the
+        placeholder to now point to the logger.
+        """
+        rv = None
+        if not isinstance(name, str):
+            raise TypeError('A logger name must be a string')
+        with _lock:
+            if name in self.loggerDict:
+                rv = self.loggerDict[name]
+                if isinstance(rv, PlaceHolder):
+                    ph = rv
+                    rv = (self.loggerClass or _loggerClass)(name)
+                    rv.manager = self
+                    self.loggerDict[name] = rv
+                    self._fixupChildren(ph, rv)
+                    self._fixupParents(rv)
+            else:
+                rv = (self.loggerClass or _loggerClass)(name)
+                rv.manager = self
+                self.loggerDict[name] = rv
+                self._fixupParents(rv)
+        return rv
+
+    def setLoggerClass(self, klass):
+        """
+        Set the class to be used when instantiating a logger with this Manager.
+        """
+        if klass != Logger:
+            if not issubclass(klass, Logger):
+                raise TypeError("logger not derived from logging.Logger: "
+                                + klass.__name__)
+        self.loggerClass = klass
+
+    def setLogRecordFactory(self, factory):
+        """
+        Set the factory to be used when instantiating a log record with this
+        Manager.
+        """
+        self.logRecordFactory = factory
+
+    def _fixupParents(self, alogger):
+        """
+        Ensure that there are either loggers or placeholders all the way
+        from the specified logger to the root of the logger hierarchy.
+        """
+        name = alogger.name
+        i = name.rfind(".")
+        rv = None
+        while (i > 0) and not rv:
+            substr = name[:i]
+            if substr not in self.loggerDict:
+                self.loggerDict[substr] = PlaceHolder(alogger)
+            else:
+                obj = self.loggerDict[substr]
+                if isinstance(obj, Logger):
+                    rv = obj
+                else:
+                    assert isinstance(obj, PlaceHolder)
+                    obj.append(alogger)
+            i = name.rfind(".", 0, i - 1)
+        if not rv:
+            rv = self.root
+        alogger.parent = rv
+
+    def _fixupChildren(self, ph, alogger):
+        """
+        Ensure that children of the placeholder ph are connected to the
+        specified logger.
+        """
+        name = alogger.name
+        namelen = len(name)
+        for c in ph.loggerMap.keys():
+            #The if means ... if not c.parent.name.startswith(nm)
+            if c.parent.name[:namelen] != name:
+                alogger.parent = c.parent
+                c.parent = alogger
+
+    def _clear_cache(self):
+        """
+        Clear the cache for all loggers in loggerDict
+        Called when level changes are made
+        """
+
+        with _lock:
+            for logger in self.loggerDict.values():
+                if isinstance(logger, Logger):
+                    logger._cache.clear()
+            self.root._cache.clear()
+
+#---------------------------------------------------------------------------
+#   Logger classes and functions
+#---------------------------------------------------------------------------
+
+class Logger(Filterer):
+    """
+    Instances of the Logger class represent a single logging channel. A
+    "logging channel" indicates an area of an application. Exactly how an
+    "area" is defined is up to the application developer. Since an
+    application can have any number of areas, logging channels are identified
+    by a unique string. Application areas can be nested (e.g. an area
+    of "input processing" might include sub-areas "read CSV files", "read
+    XLS files" and "read Gnumeric files"). To cater for this natural nesting,
+    channel names are organized into a namespace hierarchy where levels are
+    separated by periods, much like the Java or Python package namespace. So
+    in the instance given above, channel names might be "input" for the upper
+    level, and "input.csv", "input.xls" and "input.gnu" for the sub-levels.
+    There is no arbitrary limit to the depth of nesting.
+    """
+    def __init__(self, name, level=NOTSET):
+        """
+        Initialize the logger with a name and an optional level.
+        """
+        Filterer.__init__(self)
+        self.name = name
+        self.level = _checkLevel(level)
+        self.parent = None
+        self.propagate = True
+        self.handlers = []
+        self.disabled = False
+        self._cache = {}
+
+    def setLevel(self, level):
+        """
+        Set the logging level of this logger.  level must be an int or a str.
+        """
+        self.level = _checkLevel(level)
+        self.manager._clear_cache()
+
+    def debug(self, msg, *args, **kwargs):
+        """
+        Log 'msg % args' with severity 'DEBUG'.
+
+        To pass exception information, use the keyword argument exc_info with
+        a true value, e.g.
+
+        logger.debug("Houston, we have a %s", "thorny problem", exc_info=True)
+        """
+        if self.isEnabledFor(DEBUG):
+            self._log(DEBUG, msg, args, **kwargs)
+
+    def info(self, msg, *args, **kwargs):
+        """
+        Log 'msg % args' with severity 'INFO'.
+
+        To pass exception information, use the keyword argument exc_info with
+        a true value, e.g.
+
+        logger.info("Houston, we have a %s", "notable problem", exc_info=True)
+        """
+        if self.isEnabledFor(INFO):
+            self._log(INFO, msg, args, **kwargs)
+
+    def warning(self, msg, *args, **kwargs):
+        """
+        Log 'msg % args' with severity 'WARNING'.
+
+        To pass exception information, use the keyword argument exc_info with
+        a true value, e.g.
+
+        logger.warning("Houston, we have a %s", "bit of a problem", exc_info=True)
+        """
+        if self.isEnabledFor(WARNING):
+            self._log(WARNING, msg, args, **kwargs)
+
+    def warn(self, msg, *args, **kwargs):
+        warnings.warn("The 'warn' method is deprecated, "
+            "use 'warning' instead", DeprecationWarning, 2)
+        self.warning(msg, *args, **kwargs)
+
+    def error(self, msg, *args, **kwargs):
+        """
+        Log 'msg % args' with severity 'ERROR'.
+
+        To pass exception information, use the keyword argument exc_info with
+        a true value, e.g.
+
+        logger.error("Houston, we have a %s", "major problem", exc_info=True)
+        """
+        if self.isEnabledFor(ERROR):
+            self._log(ERROR, msg, args, **kwargs)
+
+    def exception(self, msg, *args, exc_info=True, **kwargs):
+        """
+        Convenience method for logging an ERROR with exception information.
+        """
+        self.error(msg, *args, exc_info=exc_info, **kwargs)
+
+    def critical(self, msg, *args, **kwargs):
+        """
+        Log 'msg % args' with severity 'CRITICAL'.
+
+        To pass exception information, use the keyword argument exc_info with
+        a true value, e.g.
+
+        logger.critical("Houston, we have a %s", "major disaster", exc_info=True)
+        """
+        if self.isEnabledFor(CRITICAL):
+            self._log(CRITICAL, msg, args, **kwargs)
+
+    def fatal(self, msg, *args, **kwargs):
+        """
+        Don't use this method, use critical() instead.
+        """
+        self.critical(msg, *args, **kwargs)
+
+    def log(self, level, msg, *args, **kwargs):
+        """
+        Log 'msg % args' with the integer severity 'level'.
+
+        To pass exception information, use the keyword argument exc_info with
+        a true value, e.g.
+
+        logger.log(level, "We have a %s", "mysterious problem", exc_info=True)
+        """
+        if not isinstance(level, int):
+            if raiseExceptions:
+                raise TypeError("level must be an integer")
+            else:
+                return
+        if self.isEnabledFor(level):
+            self._log(level, msg, args, **kwargs)
+
+    def findCaller(self, stack_info=False, stacklevel=1):
+        """
+        Find the stack frame of the caller so that we can note the source
+        file name, line number and function name.
+        """
+        f = currentframe()
+        #On some versions of IronPython, currentframe() returns None if
+        #IronPython isn't run with -X:Frames.
+        if f is None:
+            return "(unknown file)", 0, "(unknown function)", None
+        while stacklevel > 0:
+            next_f = f.f_back
+            if next_f is None:
+                ## We've got options here.
+                ## If we want to use the last (deepest) frame:
+                break
+                ## If we want to mimic the warnings module:
+                #return ("sys", 1, "(unknown function)", None)
+                ## If we want to be pedantic:
+                #raise ValueError("call stack is not deep enough")
+            f = next_f
+            if not _is_internal_frame(f):
+                stacklevel -= 1
+        co = f.f_code
+        sinfo = None
+        if stack_info:
+            with io.StringIO() as sio:
+                sio.write("Stack (most recent call last):\n")
+                traceback.print_stack(f, file=sio)
+                sinfo = sio.getvalue()
+                if sinfo[-1] == '\n':
+                    sinfo = sinfo[:-1]
+        return co.co_filename, f.f_lineno, co.co_name, sinfo
+
+    def makeRecord(self, name, level, fn, lno, msg, args, exc_info,
+                   func=None, extra=None, sinfo=None):
+        """
+        A factory method which can be overridden in subclasses to create
+        specialized LogRecords.
+        """
+        rv = _logRecordFactory(name, level, fn, lno, msg, args, exc_info, func,
+                             sinfo)
+        if extra is not None:
+            for key in extra:
+                if (key in ["message", "asctime"]) or (key in rv.__dict__):
+                    raise KeyError("Attempt to overwrite %r in LogRecord" % key)
+                rv.__dict__[key] = extra[key]
+        return rv
+
+    def _log(self, level, msg, args, exc_info=None, extra=None, stack_info=False,
+             stacklevel=1):
+        """
+        Low-level logging routine which creates a LogRecord and then calls
+        all the handlers of this logger to handle the record.
+        """
+        sinfo = None
+        if _srcfile:
+            #IronPython doesn't track Python frames, so findCaller raises an
+            #exception on some versions of IronPython. We trap it here so that
+            #IronPython can use logging.
+            try:
+                fn, lno, func, sinfo = self.findCaller(stack_info, stacklevel)
+            except ValueError: # pragma: no cover
+                fn, lno, func = "(unknown file)", 0, "(unknown function)"
+        else: # pragma: no cover
+            fn, lno, func = "(unknown file)", 0, "(unknown function)"
+        if exc_info:
+            if isinstance(exc_info, BaseException):
+                exc_info = (type(exc_info), exc_info, exc_info.__traceback__)
+            elif not isinstance(exc_info, tuple):
+                exc_info = sys.exc_info()
+        record = self.makeRecord(self.name, level, fn, lno, msg, args,
+                                 exc_info, func, extra, sinfo)
+        self.handle(record)
+
+    def handle(self, record):
+        """
+        Call the handlers for the specified record.
+
+        This method is used for unpickled records received from a socket, as
+        well as those created locally. Logger-level filtering is applied.
+        """
+        if self.disabled:
+            return
+        maybe_record = self.filter(record)
+        if not maybe_record:
+            return
+        if isinstance(maybe_record, LogRecord):
+            record = maybe_record
+        self.callHandlers(record)
+
+    def addHandler(self, hdlr):
+        """
+        Add the specified handler to this logger.
+        """
+        with _lock:
+            if not (hdlr in self.handlers):
+                self.handlers.append(hdlr)
+
+    def removeHandler(self, hdlr):
+        """
+        Remove the specified handler from this logger.
+        """
+        with _lock:
+            if hdlr in self.handlers:
+                self.handlers.remove(hdlr)
+
+    def hasHandlers(self):
+        """
+        See if this logger has any handlers configured.
+
+        Loop through all handlers for this logger and its parents in the
+        logger hierarchy. Return True if a handler was found, else False.
+        Stop searching up the hierarchy whenever a logger with the "propagate"
+        attribute set to zero is found - that will be the last logger which
+        is checked for the existence of handlers.
+        """
+        c = self
+        rv = False
+        while c:
+            if c.handlers:
+                rv = True
+                break
+            if not c.propagate:
+                break
+            else:
+                c = c.parent
+        return rv
+
+    def callHandlers(self, record):
+        """
+        Pass a record to all relevant handlers.
+
+        Loop through all handlers for this logger and its parents in the
+        logger hierarchy. If no handler was found, output a one-off error
+        message to sys.stderr. Stop searching up the hierarchy whenever a
+        logger with the "propagate" attribute set to zero is found - that
+        will be the last logger whose handlers are called.
+        """
+        c = self
+        found = 0
+        while c:
+            for hdlr in c.handlers:
+                found = found + 1
+                if record.levelno >= hdlr.level:
+                    hdlr.handle(record)
+            if not c.propagate:
+                c = None    #break out
+            else:
+                c = c.parent
+        if (found == 0):
+            if lastResort:
+                if record.levelno >= lastResort.level:
+                    lastResort.handle(record)
+            elif raiseExceptions and not self.manager.emittedNoHandlerWarning:
+                sys.stderr.write("No handlers could be found for logger"
+                                 " \"%s\"\n" % self.name)
+                self.manager.emittedNoHandlerWarning = True
+
+    def getEffectiveLevel(self):
+        """
+        Get the effective level for this logger.
+
+        Loop through this logger and its parents in the logger hierarchy,
+        looking for a non-zero logging level. Return the first one found.
+        """
+        logger = self
+        while logger:
+            if logger.level:
+                return logger.level
+            logger = logger.parent
+        return NOTSET
+
+    def isEnabledFor(self, level):
+        """
+        Is this logger enabled for level 'level'?
+        """
+        if self.disabled:
+            return False
+
+        try:
+            return self._cache[level]
+        except KeyError:
+            with _lock:
+                if self.manager.disable >= level:
+                    is_enabled = self._cache[level] = False
+                else:
+                    is_enabled = self._cache[level] = (
+                        level >= self.getEffectiveLevel()
+                    )
+            return is_enabled
+
+    def getChild(self, suffix):
+        """
+        Get a logger which is a descendant to this one.
+
+        This is a convenience method, such that
+
+        logging.getLogger('abc').getChild('def.ghi')
+
+        is the same as
+
+        logging.getLogger('abc.def.ghi')
+
+        It's useful, for example, when the parent logger is named using
+        __name__ rather than a literal string.
+        """
+        if self.root is not self:
+            suffix = '.'.join((self.name, suffix))
+        return self.manager.getLogger(suffix)
+
+    def getChildren(self):
+
+        def _hierlevel(logger):
+            if logger is logger.manager.root:
+                return 0
+            return 1 + logger.name.count('.')
+
+        d = self.manager.loggerDict
+        with _lock:
+            # exclude PlaceHolders - the last check is to ensure that lower-level
+            # descendants aren't returned - if there are placeholders, a logger's
+            # parent field might point to a grandparent or ancestor thereof.
+            return set(item for item in d.values()
+                       if isinstance(item, Logger) and item.parent is self and
+                       _hierlevel(item) == 1 + _hierlevel(item.parent))
+
+    def __repr__(self):
+        level = getLevelName(self.getEffectiveLevel())
+        return '<%s %s (%s)>' % (self.__class__.__name__, self.name, level)
+
+    def __reduce__(self):
+        if getLogger(self.name) is not self:
+            import pickle
+            raise pickle.PicklingError('logger cannot be pickled')
+        return getLogger, (self.name,)
+
+
+class RootLogger(Logger):
+    """
+    A root logger is not that different to any other logger, except that
+    it must have a logging level and there is only one instance of it in
+    the hierarchy.
+    """
+    def __init__(self, level):
+        """
+        Initialize the logger with the name "root".
+        """
+        Logger.__init__(self, "root", level)
+
+    def __reduce__(self):
+        return getLogger, ()
+
+_loggerClass = Logger
+
+class LoggerAdapter(object):
+    """
+    An adapter for loggers which makes it easier to specify contextual
+    information in logging output.
+    """
+
+    def __init__(self, logger, extra=None, merge_extra=False):
+        """
+        Initialize the adapter with a logger and a dict-like object which
+        provides contextual information. This constructor signature allows
+        easy stacking of LoggerAdapters, if so desired.
+
+        You can effectively pass keyword arguments as shown in the
+        following example:
+
+        adapter = LoggerAdapter(someLogger, dict(p1=v1, p2="v2"))
+
+        By default, LoggerAdapter objects will drop the "extra" argument
+        passed on the individual log calls to use its own instead.
+
+        Initializing it with merge_extra=True will instead merge both
+        maps when logging, the individual call extra taking precedence
+        over the LoggerAdapter instance extra
+
+        .. versionchanged:: 3.13
+           The *merge_extra* argument was added.
+        """
+        self.logger = logger
+        self.extra = extra
+        self.merge_extra = merge_extra
+
+    def process(self, msg, kwargs):
+        """
+        Process the logging message and keyword arguments passed in to
+        a logging call to insert contextual information. You can either
+        manipulate the message itself, the keyword args or both. Return
+        the message and kwargs modified (or not) to suit your needs.
+
+        Normally, you'll only need to override this one method in a
+        LoggerAdapter subclass for your specific needs.
+        """
+        if self.merge_extra and "extra" in kwargs:
+            kwargs["extra"] = {**self.extra, **kwargs["extra"]}
+        else:
+            kwargs["extra"] = self.extra
+        return msg, kwargs
+
+    #
+    # Boilerplate convenience methods
+    #
+    def debug(self, msg, *args, **kwargs):
+        """
+        Delegate a debug call to the underlying logger.
+        """
+        self.log(DEBUG, msg, *args, **kwargs)
+
+    def info(self, msg, *args, **kwargs):
+        """
+        Delegate an info call to the underlying logger.
+        """
+        self.log(INFO, msg, *args, **kwargs)
+
+    def warning(self, msg, *args, **kwargs):
+        """
+        Delegate a warning call to the underlying logger.
+        """
+        self.log(WARNING, msg, *args, **kwargs)
+
+    def warn(self, msg, *args, **kwargs):
+        warnings.warn("The 'warn' method is deprecated, "
+            "use 'warning' instead", DeprecationWarning, 2)
+        self.warning(msg, *args, **kwargs)
+
+    def error(self, msg, *args, **kwargs):
+        """
+        Delegate an error call to the underlying logger.
+        """
+        self.log(ERROR, msg, *args, **kwargs)
+
+    def exception(self, msg, *args, exc_info=True, **kwargs):
+        """
+        Delegate an exception call to the underlying logger.
+        """
+        self.log(ERROR, msg, *args, exc_info=exc_info, **kwargs)
+
+    def critical(self, msg, *args, **kwargs):
+        """
+        Delegate a critical call to the underlying logger.
+        """
+        self.log(CRITICAL, msg, *args, **kwargs)
+
+    def log(self, level, msg, *args, **kwargs):
+        """
+        Delegate a log call to the underlying logger, after adding
+        contextual information from this adapter instance.
+        """
+        if self.isEnabledFor(level):
+            msg, kwargs = self.process(msg, kwargs)
+            self.logger.log(level, msg, *args, **kwargs)
+
+    def isEnabledFor(self, level):
+        """
+        Is this logger enabled for level 'level'?
+        """
+        return self.logger.isEnabledFor(level)
+
+    def setLevel(self, level):
+        """
+        Set the specified level on the underlying logger.
+        """
+        self.logger.setLevel(level)
+
+    def getEffectiveLevel(self):
+        """
+        Get the effective level for the underlying logger.
+        """
+        return self.logger.getEffectiveLevel()
+
+    def hasHandlers(self):
+        """
+        See if the underlying logger has any handlers.
+        """
+        return self.logger.hasHandlers()
+
+    def _log(self, level, msg, args, **kwargs):
+        """
+        Low-level log implementation, proxied to allow nested logger adapters.
+        """
+        return self.logger._log(level, msg, args, **kwargs)
+
+    @property
+    def manager(self):
+        return self.logger.manager
+
+    @manager.setter
+    def manager(self, value):
+        self.logger.manager = value
+
+    @property
+    def name(self):
+        return self.logger.name
+
+    def __repr__(self):
+        logger = self.logger
+        level = getLevelName(logger.getEffectiveLevel())
+        return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
+
+    __class_getitem__ = classmethod(GenericAlias)
+
+root = RootLogger(WARNING)
+Logger.root = root
+Logger.manager = Manager(Logger.root)
+
+#---------------------------------------------------------------------------
+# Configuration classes and functions
+#---------------------------------------------------------------------------
+
+def basicConfig(**kwargs):
+    """
+    Do basic configuration for the logging system.
+
+    This function does nothing if the root logger already has handlers
+    configured, unless the keyword argument *force* is set to ``True``.
+    It is a convenience method intended for use by simple scripts
+    to do one-shot configuration of the logging package.
+
+    The default behaviour is to create a StreamHandler which writes to
+    sys.stderr, set a formatter using the BASIC_FORMAT format string, and
+    add the handler to the root logger.
+
+    A number of optional keyword arguments may be specified, which can alter
+    the default behaviour.
+
+    filename  Specifies that a FileHandler be created, using the specified
+              filename, rather than a StreamHandler.
+    filemode  Specifies the mode to open the file, if filename is specified
+              (if filemode is unspecified, it defaults to 'a').
+    format    Use the specified format string for the handler.
+    datefmt   Use the specified date/time format.
+    style     If a format string is specified, use this to specify the
+              type of format string (possible values '%', '{', '$', for
+              %-formatting, :meth:`str.format` and :class:`string.Template`
+              - defaults to '%').
+    level     Set the root logger level to the specified level.
+    stream    Use the specified stream to initialize the StreamHandler. Note
+              that this argument is incompatible with 'filename' - if both
+              are present, 'stream' is ignored.
+    handlers  If specified, this should be an iterable of already created
+              handlers, which will be added to the root logger. Any handler
+              in the list which does not have a formatter assigned will be
+              assigned the formatter created in this function.
+    force     If this keyword  is specified as true, any existing handlers
+              attached to the root logger are removed and closed, before
+              carrying out the configuration as specified by the other
+              arguments.
+    encoding  If specified together with a filename, this encoding is passed to
+              the created FileHandler, causing it to be used when the file is
+              opened.
+    errors    If specified together with a filename, this value is passed to the
+              created FileHandler, causing it to be used when the file is
+              opened in text mode. If not specified, the default value is
+              `backslashreplace`.
+
+    Note that you could specify a stream created using open(filename, mode)
+    rather than passing the filename and mode in. However, it should be
+    remembered that StreamHandler does not close its stream (since it may be
+    using sys.stdout or sys.stderr), whereas FileHandler closes its stream
+    when the handler is closed.
+
+    .. versionchanged:: 3.2
+       Added the ``style`` parameter.
+
+    .. versionchanged:: 3.3
+       Added the ``handlers`` parameter. A ``ValueError`` is now thrown for
+       incompatible arguments (e.g. ``handlers`` specified together with
+       ``filename``/``filemode``, or ``filename``/``filemode`` specified
+       together with ``stream``, or ``handlers`` specified together with
+       ``stream``.
+
+    .. versionchanged:: 3.8
+       Added the ``force`` parameter.
+
+    .. versionchanged:: 3.9
+       Added the ``encoding`` and ``errors`` parameters.
+    """
+    # Add thread safety in case someone mistakenly calls
+    # basicConfig() from multiple threads
+    with _lock:
+        force = kwargs.pop('force', False)
+        encoding = kwargs.pop('encoding', None)
+        errors = kwargs.pop('errors', 'backslashreplace')
+        if force:
+            for h in root.handlers[:]:
+                root.removeHandler(h)
+                h.close()
+        if len(root.handlers) == 0:
+            handlers = kwargs.pop("handlers", None)
+            if handlers is None:
+                if "stream" in kwargs and "filename" in kwargs:
+                    raise ValueError("'stream' and 'filename' should not be "
+                                     "specified together")
+            else:
+                if "stream" in kwargs or "filename" in kwargs:
+                    raise ValueError("'stream' or 'filename' should not be "
+                                     "specified together with 'handlers'")
+            if handlers is None:
+                filename = kwargs.pop("filename", None)
+                mode = kwargs.pop("filemode", 'a')
+                if filename:
+                    if 'b' in mode:
+                        errors = None
+                    else:
+                        encoding = io.text_encoding(encoding)
+                    h = FileHandler(filename, mode,
+                                    encoding=encoding, errors=errors)
+                else:
+                    stream = kwargs.pop("stream", None)
+                    h = StreamHandler(stream)
+                handlers = [h]
+            dfs = kwargs.pop("datefmt", None)
+            style = kwargs.pop("style", '%')
+            if style not in _STYLES:
+                raise ValueError('Style must be one of: %s' % ','.join(
+                                 _STYLES.keys()))
+            fs = kwargs.pop("format", _STYLES[style][1])
+            fmt = Formatter(fs, dfs, style)
+            for h in handlers:
+                if h.formatter is None:
+                    h.setFormatter(fmt)
+                root.addHandler(h)
+            level = kwargs.pop("level", None)
+            if level is not None:
+                root.setLevel(level)
+            if kwargs:
+                keys = ', '.join(kwargs.keys())
+                raise ValueError('Unrecognised argument(s): %s' % keys)
+
+#---------------------------------------------------------------------------
+# Utility functions at module level.
+# Basically delegate everything to the root logger.
+#---------------------------------------------------------------------------
+
+def getLogger(name=None):
+    """
+    Return a logger with the specified name, creating it if necessary.
+
+    If no name is specified, return the root logger.
+    """
+    if not name or isinstance(name, str) and name == root.name:
+        return root
+    return Logger.manager.getLogger(name)
+
+def critical(msg, *args, **kwargs):
+    """
+    Log a message with severity 'CRITICAL' on the root logger. If the logger
+    has no handlers, call basicConfig() to add a console handler with a
+    pre-defined format.
+    """
+    if len(root.handlers) == 0:
+        basicConfig()
+    root.critical(msg, *args, **kwargs)
+
+def fatal(msg, *args, **kwargs):
+    """
+    Don't use this function, use critical() instead.
+    """
+    critical(msg, *args, **kwargs)
+
+def error(msg, *args, **kwargs):
+    """
+    Log a message with severity 'ERROR' on the root logger. If the logger has
+    no handlers, call basicConfig() to add a console handler with a pre-defined
+    format.
+    """
+    if len(root.handlers) == 0:
+        basicConfig()
+    root.error(msg, *args, **kwargs)
+
+def exception(msg, *args, exc_info=True, **kwargs):
+    """
+    Log a message with severity 'ERROR' on the root logger, with exception
+    information. If the logger has no handlers, basicConfig() is called to add
+    a console handler with a pre-defined format.
+    """
+    error(msg, *args, exc_info=exc_info, **kwargs)
+
+def warning(msg, *args, **kwargs):
+    """
+    Log a message with severity 'WARNING' on the root logger. If the logger has
+    no handlers, call basicConfig() to add a console handler with a pre-defined
+    format.
+    """
+    if len(root.handlers) == 0:
+        basicConfig()
+    root.warning(msg, *args, **kwargs)
+
+def warn(msg, *args, **kwargs):
+    warnings.warn("The 'warn' function is deprecated, "
+        "use 'warning' instead", DeprecationWarning, 2)
+    warning(msg, *args, **kwargs)
+
+def info(msg, *args, **kwargs):
+    """
+    Log a message with severity 'INFO' on the root logger. If the logger has
+    no handlers, call basicConfig() to add a console handler with a pre-defined
+    format.
+    """
+    if len(root.handlers) == 0:
+        basicConfig()
+    root.info(msg, *args, **kwargs)
+
+def debug(msg, *args, **kwargs):
+    """
+    Log a message with severity 'DEBUG' on the root logger. If the logger has
+    no handlers, call basicConfig() to add a console handler with a pre-defined
+    format.
+    """
+    if len(root.handlers) == 0:
+        basicConfig()
+    root.debug(msg, *args, **kwargs)
+
+
+[docs] +def log(level, msg, *args, **kwargs): + """ + Log 'msg % args' with the integer severity 'level' on the root logger. If + the logger has no handlers, call basicConfig() to add a console handler + with a pre-defined format. + """ + if len(root.handlers) == 0: + basicConfig() + root.log(level, msg, *args, **kwargs)
+ + +def disable(level=CRITICAL): + """ + Disable all logging calls of severity 'level' and below. + """ + root.manager.disable = level + root.manager._clear_cache() + +def shutdown(handlerList=_handlerList): + """ + Perform any cleanup actions in the logging system (e.g. flushing + buffers). + + Should be called at application exit. + """ + for wr in reversed(handlerList[:]): + #errors might occur, for example, if files are locked + #we just ignore them if raiseExceptions is not set + try: + h = wr() + if h: + try: + h.acquire() + # MemoryHandlers might not want to be flushed on close, + # but circular imports prevent us scoping this to just + # those handlers. hence the default to True. + if getattr(h, 'flushOnClose', True): + h.flush() + h.close() + except (OSError, ValueError): + # Ignore errors which might be caused + # because handlers have been closed but + # references to them are still around at + # application exit. + pass + finally: + h.release() + except: # ignore everything, as we're shutting down + if raiseExceptions: + raise + #else, swallow + +#Let's try and shutdown automatically on application exit... +import atexit +atexit.register(shutdown) + +# Null handler + +class NullHandler(Handler): + """ + This handler does nothing. It's intended to be used to avoid the + "No handlers could be found for logger XXX" one-off warning. This is + important for library code, which may contain code to log events. If a user + of the library does not configure logging, the one-off warning might be + produced; to avoid this, the library developer simply needs to instantiate + a NullHandler and add it to the top-level logger of the library module or + package. + """ + def handle(self, record): + """Stub.""" + + def emit(self, record): + """Stub.""" + + def createLock(self): + self.lock = None + + def _at_fork_reinit(self): + pass + +# Warnings integration + +_warnings_showwarning = None + +def _showwarning(message, category, filename, lineno, file=None, line=None): + """ + Implementation of showwarnings which redirects to logging, which will first + check to see if the file parameter is None. If a file is specified, it will + delegate to the original warnings implementation of showwarning. Otherwise, + it will call warnings.formatwarning and will log the resulting string to a + warnings logger named "py.warnings" with level logging.WARNING. + """ + if file is not None: + if _warnings_showwarning is not None: + _warnings_showwarning(message, category, filename, lineno, file, line) + else: + s = warnings.formatwarning(message, category, filename, lineno, line) + logger = getLogger("py.warnings") + if not logger.handlers: + logger.addHandler(NullHandler()) + # bpo-46557: Log str(s) as msg instead of logger.warning("%s", s) + # since some log aggregation tools group logs by the msg arg + logger.warning(str(s)) + +def captureWarnings(capture): + """ + If capture is true, redirect all warnings to the logging package. + If capture is False, ensure that warnings are not redirected to logging + but to their original destinations. + """ + global _warnings_showwarning + if capture: + if _warnings_showwarning is None: + _warnings_showwarning = warnings.showwarning + warnings.showwarning = _showwarning + else: + if _warnings_showwarning is not None: + warnings.showwarning = _warnings_showwarning + _warnings_showwarning = None +
+ +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.data.dspy_data.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.data.dspy_data.rst.txt new file mode 100644 index 0000000..75d31db --- /dev/null +++ b/graphdoc/docs/_build/html/_sources/graphdoc.data.dspy_data.rst.txt @@ -0,0 +1,37 @@ +graphdoc.data.dspy\_data package +================================ + +Submodules +---------- + +graphdoc.data.dspy\_data.dspy\_data\_helper module +-------------------------------------------------- + +.. automodule:: graphdoc.data.dspy_data.dspy_data_helper + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.dspy\_data.generation\_data\_helper module +-------------------------------------------------------- + +.. automodule:: graphdoc.data.dspy_data.generation_data_helper + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.dspy\_data.quality\_data\_helper module +----------------------------------------------------- + +.. automodule:: graphdoc.data.dspy_data.quality_data_helper + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.data.dspy_data + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.data.mlflow_data.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.data.mlflow_data.rst.txt new file mode 100644 index 0000000..7505d93 --- /dev/null +++ b/graphdoc/docs/_build/html/_sources/graphdoc.data.mlflow_data.rst.txt @@ -0,0 +1,21 @@ +graphdoc.data.mlflow\_data package +================================== + +Submodules +---------- + +graphdoc.data.mlflow\_data.mlflow\_data\_helper module +------------------------------------------------------ + +.. automodule:: graphdoc.data.mlflow_data.mlflow_data_helper + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.data.mlflow_data + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.data.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.data.rst.txt new file mode 100644 index 0000000..9f059b8 --- /dev/null +++ b/graphdoc/docs/_build/html/_sources/graphdoc.data.rst.txt @@ -0,0 +1,54 @@ +graphdoc.data package +===================== + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + graphdoc.data.dspy_data + graphdoc.data.mlflow_data + +Submodules +---------- + +graphdoc.data.helper module +--------------------------- + +.. automodule:: graphdoc.data.helper + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.local module +-------------------------- + +.. automodule:: graphdoc.data.local + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.parser module +--------------------------- + +.. automodule:: graphdoc.data.parser + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.schema module +--------------------------- + +.. automodule:: graphdoc.data.schema + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.data + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.eval.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.eval.rst.txt new file mode 100644 index 0000000..8b095e3 --- /dev/null +++ b/graphdoc/docs/_build/html/_sources/graphdoc.eval.rst.txt @@ -0,0 +1,21 @@ +graphdoc.eval package +===================== + +Submodules +---------- + +graphdoc.eval.doc\_generator\_eval module +----------------------------------------- + +.. automodule:: graphdoc.eval.doc_generator_eval + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.eval + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.modules.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.modules.rst.txt new file mode 100644 index 0000000..b8bfd19 --- /dev/null +++ b/graphdoc/docs/_build/html/_sources/graphdoc.modules.rst.txt @@ -0,0 +1,21 @@ +graphdoc.modules package +======================== + +Submodules +---------- + +graphdoc.modules.doc\_generator\_module module +---------------------------------------------- + +.. automodule:: graphdoc.modules.doc_generator_module + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.modules + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.prompts.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.prompts.rst.txt new file mode 100644 index 0000000..cf530c9 --- /dev/null +++ b/graphdoc/docs/_build/html/_sources/graphdoc.prompts.rst.txt @@ -0,0 +1,37 @@ +graphdoc.prompts package +======================== + +Submodules +---------- + +graphdoc.prompts.schema\_doc\_generation module +----------------------------------------------- + +.. automodule:: graphdoc.prompts.schema_doc_generation + :members: + :undoc-members: + :show-inheritance: + +graphdoc.prompts.schema\_doc\_quality module +-------------------------------------------- + +.. automodule:: graphdoc.prompts.schema_doc_quality + :members: + :undoc-members: + :show-inheritance: + +graphdoc.prompts.single\_prompt module +-------------------------------------- + +.. automodule:: graphdoc.prompts.single_prompt + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.prompts + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.rst.txt new file mode 100644 index 0000000..502daff --- /dev/null +++ b/graphdoc/docs/_build/html/_sources/graphdoc.rst.txt @@ -0,0 +1,41 @@ +graphdoc package +================ + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + graphdoc.data + graphdoc.eval + graphdoc.modules + graphdoc.prompts + graphdoc.train + +Submodules +---------- + +graphdoc.config module +---------------------- + +.. automodule:: graphdoc.config + :members: + :undoc-members: + :show-inheritance: + +graphdoc.main module +-------------------- + +.. automodule:: graphdoc.main + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.train.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.train.rst.txt new file mode 100644 index 0000000..d6d3f32 --- /dev/null +++ b/graphdoc/docs/_build/html/_sources/graphdoc.train.rst.txt @@ -0,0 +1,45 @@ +graphdoc.train package +====================== + +Submodules +---------- + +graphdoc.train.doc\_generator\_trainer module +--------------------------------------------- + +.. automodule:: graphdoc.train.doc_generator_trainer + :members: + :undoc-members: + :show-inheritance: + +graphdoc.train.doc\_quality\_trainer module +------------------------------------------- + +.. automodule:: graphdoc.train.doc_quality_trainer + :members: + :undoc-members: + :show-inheritance: + +graphdoc.train.optimizers module +-------------------------------- + +.. automodule:: graphdoc.train.optimizers + :members: + :undoc-members: + :show-inheritance: + +graphdoc.train.single\_prompt\_trainer module +--------------------------------------------- + +.. automodule:: graphdoc.train.single_prompt_trainer + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.train + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/index.rst.txt b/graphdoc/docs/_build/html/_sources/index.rst.txt index 407df87..3db22af 100644 --- a/graphdoc/docs/_build/html/_sources/index.rst.txt +++ b/graphdoc/docs/_build/html/_sources/index.rst.txt @@ -14,14 +14,14 @@ you will find a `mlflow-manager `_ directory that can help you find a `run.sh `_ script that can help you get started with a majority of common workflows that you may want to run. Just reach open an issue, or submit a PR, if you have any questions or feedback. Thanks! +License: `Apache License 2.0 `_ + .. toctree:: :maxdepth: 2 :caption: Contents: modules - graphdoc - graphdoc.prompts Indices and tables ================== diff --git a/graphdoc/docs/_build/html/_sources/links.rst.txt b/graphdoc/docs/_build/html/_sources/links.rst.txt index deeb520..e796213 100644 --- a/graphdoc/docs/_build/html/_sources/links.rst.txt +++ b/graphdoc/docs/_build/html/_sources/links.rst.txt @@ -1,4 +1,5 @@ .. _mlflow: https://mlflow.org/ .. _graphdoc_repo: https://github.com/semiotic-ai/graphdoc .. _mlflow_manager: https://github.com/semiotic-ai/graphdoc/tree/main/mlflow-manager -.. _run_script: https://github.com/semiotic-ai/graphdoc/blob/main/run.sh \ No newline at end of file +.. _run_script: https://github.com/semiotic-ai/graphdoc/blob/main/run.sh +.. _Apache License 2.0: https://www.apache.org/licenses/LICENSE-2.0 \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_sources/modules.rst.txt b/graphdoc/docs/_build/html/_sources/modules.rst.txt new file mode 100644 index 0000000..06251c7 --- /dev/null +++ b/graphdoc/docs/_build/html/_sources/modules.rst.txt @@ -0,0 +1,7 @@ +graphdoc +======== + +.. toctree:: + :maxdepth: 4 + + graphdoc diff --git a/graphdoc/docs/_build/html/genindex.html b/graphdoc/docs/_build/html/genindex.html index 640a708..e48134f 100644 --- a/graphdoc/docs/_build/html/genindex.html +++ b/graphdoc/docs/_build/html/genindex.html @@ -44,8 +44,11 @@
@@ -87,6 +90,7 @@

Index

| M | O | P + | Q | R | S | T @@ -97,510 +101,1768 @@

Index

_

-
+
  • (graphdoc.Parser static method), [1] +
  • + +
  • _env_constructor() (in module graphdoc), [1] -

    A

    - - -
    +
  • _predict() (graphdoc.DocGeneratorModule method), [1] -

    B

    - - -
    +
  • _retry_by_rating() (graphdoc.DocGeneratorModule method), [1]
  • -

    C

    +

    A

    +
    + +

    B

    +
    -

    D

    +

    C

    +
  • check_directory_path() (in module graphdoc), [1] + +
  • +
  • check_file_path() (in module graphdoc), [1] + +
  • -

    E

    +

    D

    - -
    - -

    F

    - - - -
    +
  • DEFAULT_NODE_TYPES (graphdoc.data.Parser attribute), [1]
  • -
  • FOUR (graphdoc.data.schema.SchemaRating attribute) +
  • doc_gen_factory() (in module graphdoc.prompts.schema_doc_generation), [1]
  • -
    - -

    G

    - - -
    - -

    I

    - - -
    +
  • documented_schema (graphdoc.BadDocGeneratorSignature attribute), [1] -

    K

    - - -
    +
  • (graphdoc.DocGeneratorSignature attribute), [1] +
  • +
  • (graphdoc.prompts.BadDocGeneratorSignature attribute), [1] +
  • +
  • (graphdoc.prompts.DocGeneratorHelperSignature attribute), [1] +
  • +
  • (graphdoc.prompts.DocGeneratorSignature attribute), [1] +
  • +
  • (graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature attribute), [1] +
  • +
  • (graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature attribute), [1] +
  • +
  • (graphdoc.prompts.schema_doc_generation.DocGeneratorSignature attribute), [1] +
  • + +
  • DspyDataHelper (class in graphdoc), [1] -

    L

    - - -
    -

    M

    +

    E

    -
    +
  • evaluate_training() (graphdoc.DocGeneratorTrainer method), [1] -

    O

    - - -
    - -

    P

    - - -
    - -

    R

    - - -
    +
  • example() (graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper static method) -

    S

    - - -
    +
  • example_example() (graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper static method) + +
  • -

    T

    +

    F

    + +
    + +

    G

    + + + +
      +
    • + graphdoc.data.mlflow_data.mlflow_data_helper + +
    • +
    • + graphdoc.data.parser + +
    • +
    • + graphdoc.data.schema + +
    • +
    • + graphdoc.eval + +
    • +
    • + graphdoc.eval.doc_generator_eval + +
    • +
    • + graphdoc.main + +
    • +
    • + graphdoc.modules + +
    • +
    • + graphdoc.modules.doc_generator_module + +
    • +
    • + graphdoc.prompts + +
    • +
    • + graphdoc.prompts.schema_doc_generation + +
    • +
    • + graphdoc.prompts.schema_doc_quality + +
    • +
    • + graphdoc.prompts.single_prompt + +
    • +
    • + graphdoc.train + +
    • +
    • + graphdoc.train.doc_generator_trainer + +
    • +
    • + graphdoc.train.doc_quality_trainer + +
    • +
    • + graphdoc.train.optimizers + +
    • +
    • + graphdoc.train.single_prompt_trainer + +
    • +
    + +

    I

    + + +
    + +

    K

    + + +
    + +

    L

    + + + +
    + +

    M

    + + + +
    + +

    O

    + + + +
    + +

    P

    + + + +
    + +

    Q

    + + +
    + +

    R

    + + + +
    + +

    S

    + + + +
    + +

    T

    + +

    U

    +

    Z

    diff --git a/graphdoc/docs/_build/html/graphdoc.data.dspy_data.html b/graphdoc/docs/_build/html/graphdoc.data.dspy_data.html new file mode 100644 index 0000000..e301b4f --- /dev/null +++ b/graphdoc/docs/_build/html/graphdoc.data.dspy_data.html @@ -0,0 +1,913 @@ + + + + + + + graphdoc.data.dspy_data package — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    graphdoc.data.dspy_data package

    +
    +

    Submodules

    +
    +
    +

    graphdoc.data.dspy_data.dspy_data_helper module

    +
    +
    +class graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper[source]
    +

    Bases: ABC

    +

    Abstract class for creating data objects related to a given dspy.Signature.

    +
    +
    +static _(prompt: Predict) Signature | SignatureMeta[source]
    +

    Given a dspy.Predict object, return a dspy.Signature object.

    +
    + +
    +
    +abstract static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +abstract static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static formatted_signature(signature: Signature | SignatureMeta, example: Example) str[source]
    +

    Given a dspy.Signature and a dspy.Example, return a formatted signature as a +string.

    +
    +
    Parameters:
    +
      +
    • signature (dspy.Signature) – A dspy.Signature object.

    • +
    • example (dspy.Example) – A dspy.Example object.

    • +
    +
    +
    Returns:
    +

    A formatted signature as a string.

    +
    +
    Return type:
    +

    str

    +
    +
    +
    + +
    +
    +abstract static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +abstract static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +abstract static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +prompt_signature() Signature | SignatureMeta[source]
    +

    Given a prompt, return a dspy.Signature object.

    +
    +
    Parameters:
    +

    prompt (Any) – A prompt.

    +
    +
    +
    + +
    +
    +abstract static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +

    graphdoc.data.dspy_data.generation_data_helper module

    +
    +
    +class graphdoc.data.dspy_data.generation_data_helper.GenerationDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Generation +dspy.Signature.

    +

    The example signature is defined as: +` +database_schema: str = dspy.InputField() +documented_schema: str = dspy.OutputField() +`

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +

    graphdoc.data.dspy_data.quality_data_helper module

    +
    +
    +class graphdoc.data.dspy_data.quality_data_helper.QualityDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Quality +dspy.Signature.

    +

    The example signature is defined as: +``` +database_schema: str = dspy.InputField() +category: Literal[“perfect”, “almost perfect”, “poor but correct”, “incorrect”] = (

    +
    +

    dspy.OutputField()

    +
    +

    ) +rating: Literal[4, 3, 2, 1] = dspy.OutputField() +```

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +

    Module contents

    +
    +
    +class graphdoc.data.dspy_data.DspyDataHelper[source]
    +

    Bases: ABC

    +

    Abstract class for creating data objects related to a given dspy.Signature.

    +
    +
    +static _(prompt: Predict) Signature | SignatureMeta[source]
    +

    Given a dspy.Predict object, return a dspy.Signature object.

    +
    + +
    +
    +abstract static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +abstract static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static formatted_signature(signature: Signature | SignatureMeta, example: Example) str[source]
    +

    Given a dspy.Signature and a dspy.Example, return a formatted signature as a +string.

    +
    +
    Parameters:
    +
      +
    • signature (dspy.Signature) – A dspy.Signature object.

    • +
    • example (dspy.Example) – A dspy.Example object.

    • +
    +
    +
    Returns:
    +

    A formatted signature as a string.

    +
    +
    Return type:
    +

    str

    +
    +
    +
    + +
    +
    +abstract static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +abstract static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +abstract static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +prompt_signature() Signature | SignatureMeta[source]
    +

    Given a prompt, return a dspy.Signature object.

    +
    +
    Parameters:
    +

    prompt (Any) – A prompt.

    +
    +
    +
    + +
    +
    +abstract static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.dspy_data.GenerationDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Generation +dspy.Signature.

    +

    The example signature is defined as: +` +database_schema: str = dspy.InputField() +documented_schema: str = dspy.OutputField() +`

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.dspy_data.QualityDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Quality +dspy.Signature.

    +

    The example signature is defined as: +``` +database_schema: str = dspy.InputField() +category: Literal[“perfect”, “almost perfect”, “poor but correct”, “incorrect”] = (

    +
    +

    dspy.OutputField()

    +
    +

    ) +rating: Literal[4, 3, 2, 1] = dspy.OutputField() +```

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/graphdoc.data.html b/graphdoc/docs/_build/html/graphdoc.data.html new file mode 100644 index 0000000..e8ffabb --- /dev/null +++ b/graphdoc/docs/_build/html/graphdoc.data.html @@ -0,0 +1,1983 @@ + + + + + + + graphdoc.data package — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    graphdoc.data package

    +
    +

    Subpackages

    +
    + +
    +
    +
    +

    Submodules

    +
    +
    +

    graphdoc.data.helper module

    +
    +
    +graphdoc.data.helper._env_constructor(loader: SafeLoader, node: ScalarNode) str[source]
    +

    Custom constructor for environment variables.

    +
    +
    Parameters:
    +
      +
    • loader (yaml.SafeLoader) – The YAML loader.

    • +
    • node (yaml.nodes.ScalarNode) – The node to construct.

    • +
    +
    +
    Returns:
    +

    The environment variable value.

    +
    +
    Return type:
    +

    str

    +
    +
    Raises:
    +

    ValueError – If the environment variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.data.helper.check_directory_path(directory_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid directory.

    +
    +
    Parameters:
    +

    directory_path (Union[str, Path]) – The path to check.

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid directory.

    +
    +
    Returns:
    +

    None

    +
    +
    Return type:
    +

    None

    +
    +
    +
    + +
    +
    +graphdoc.data.helper.check_file_path(file_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid file.

    +
    +
    Parameters:
    +

    file_path – The path to check. :type file_path: Union[str, Path] :raises

    +
    +
    +

    ValueError: If the path does not resolve to a valid file. :return: None :rtype: None

    +
    + +
    +
    +graphdoc.data.helper.load_yaml_config(file_path: str | Path, use_env: bool = True) dict[source]
    +

    Load a YAML configuration file.

    +
    +
    Parameters:
    +
      +
    • file_path (Union[str, Path]) – The path to the YAML file.

    • +
    • use_env (bool) – Whether to use environment variables.

    • +
    +
    +
    Returns:
    +

    The YAML configuration.

    +
    +
    Return type:
    +

    dict

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid file or the environment +variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.data.helper.setup_logging(log_level: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'])[source]
    +

    Setup logging for the application.

    +
    +
    Parameters:
    +

    log_level (Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]) – The log level.

    +
    +
    +
    + +
    +
    +

    graphdoc.data.local module

    +
    +
    +class graphdoc.data.local.LocalDataHelper(schema_directory_path: str | ~pathlib._local.Path | None = None, categories: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, ratings: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, categories_ratings: ~typing.Callable = <function SchemaCategoryRatingMapping.get_rating>)[source]
    +

    Bases: object

    +

    A helper class for loading data from a directory.

    +
    +
    Parameters:
    +
      +
    • schema_directory_path (Union[str, Path] Defaults to the path to the schemas in +the graphdoc package.) – The path to the directory containing the schemas

    • +
    • categories (Type[Enum]) – The categories of the schemas. Defaults to SchemaCategory.

    • +
    • ratings (Type[Enum]) – The ratings of the schemas. Defaults to SchemaRating.

    • +
    • categories_ratings – A callable that maps categories to ratings. Defaults to +SchemaCategoryRatingMapping.get_rating.

    • +
    +
    +
    +
    +
    +folder_of_folders_to_dataset(folder_paths: ~typing.Type[~enum.Enum] = <enum 'SchemaCategoryPath'>, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths – Enum class defining folder paths, defaults to

    +
    +
    +

    SchemaCategoryPath. Must have a get_path method. :type folder_paths: Type[Enum] +:param parse_objects: Whether to parse the objects from the schemas :type +parse_objects: bool :param type_mapping: A dictionary mapping graphql-ast node +values to strings

    +
    + +
    +
    +folder_to_dataset(category: str, folder_path: str | Path, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    category – The category of the schemas :type category: str :param

    +
    +
    +

    folder_path: The path to the folder containing the schemas :type folder_path: +Union[str, Path] :param parse_objects: Whether to parse the objects from the +schemas :type parse_objects: bool :param type_mapping: A dictionary mapping +types to strings :type type_mapping: Optional[dict[type, str]]

    +
    + +
    +
    +schema_objects_from_folder(category: str, rating: int, folder_path: str | Path) dict[str, SchemaObject][source]
    +

    Load schemas from a folder, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_path – The path to the folder containing the schemas :type

    +
    +
    +

    folder_path: Union[str, Path] :param category: The category of the schemas :type +category: str :param rating: The rating of the schemas :type rating: int +:return: A dictionary of schemas :rtype: dict[str, SchemaObject]

    +
    + +
    +
    +schema_objects_from_folder_of_folders(folder_paths: ~typing.Type[~enum.Enum] | None = <enum 'SchemaCategoryPath'>) Dict[str, SchemaObject] | None[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths (Optional[Type[Enum]]) – Enum class defining folder paths, defaults to +SchemaCategoryPath. Must have a get_path method.

    +
    +
    Returns:
    +

    Dictionary of loaded schemas

    +
    +
    Return type:
    +

    Union[Dict[str, SchemaObject], None]

    +
    +
    +
    + +
    + +
    +
    +

    graphdoc.data.parser module

    +
    +
    +class graphdoc.data.parser.Parser(type_mapping: dict[type, str] | None = None)[source]
    +

    Bases: object

    +

    A class for parsing and handling of GraphQL objects.

    +
    +
    +DEFAULT_NODE_TYPES = {<class 'graphql.language.ast.DocumentNode'>: 'full schema', <class 'graphql.language.ast.EnumTypeDefinitionNode'>: 'enum schema', <class 'graphql.language.ast.EnumValueDefinitionNode'>: 'enum value', <class 'graphql.language.ast.ObjectTypeDefinitionNode'>: 'table schema'}
    +
    + +
    +
    +static _check_node_type(node: Node, type_mapping: dict[type, str] | None = None) str[source]
    +

    Check the type of a schema node.

    +
    +
    Parameters:
    +

    node – The schema node to check :type node: Node :param type_mapping:

    +
    +
    +

    Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES :type +type_mapping: Optional[dict[type, str]] :return: The type of the schema node +:rtype: str

    +
    + +
    +
    +static count_description_pattern_matching(node: Node, pattern: str) dict[str, int][source]
    +

    Counts the number of times a pattern matches a description in a node and its +children.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to count the pattern matches in

    • +
    • pattern (str) – The pattern to count the matches of

    • +
    +
    +
    Returns:
    +

    A dictionary with the counts of matches

    +
    +
    Return type:
    +

    dict[str, int]

    +
    +
    +
    + +
    +
    +static fill_empty_descriptions(node: Node, new_column_value: str = 'Description for column: {}', new_table_value: str = 'Description for table: {}', use_value_name: bool = True, value_name: str | None = None)[source]
    +

    Recursively traverse the node and its children, filling in empty descriptions +with the new column or table value. Do not update descriptions that already have +a value. Default values are provided for the new column and table descriptions.

    +
    +
    Parameters:
    +

    node – The GraphQL node to update :type node: Node :param

    +
    +
    +

    new_column_value: The new column description value :type new_column_value: str +:param new_table_value: The new table description value :type new_table_value: +str :param use_value_name: Whether to use the value name in the description +:type use_value_name: bool :param value_name: The name of the value :type +value_name: Optional[str] :return: The updated node :rtype: Node

    +
    + +
    +
    +static parse_objects_from_full_schema_object(schema: SchemaObject, type_mapping: dict[type, str] | None = None) dict[str, SchemaObject] | None[source]
    +

    Parse out all available tables from a full schema object.

    +
    +
    Parameters:
    +

    schema – The full schema object to parse :type schema: SchemaObject :param

    +
    +
    +

    type_mapping: Custom mapping of node types to strings. Defaults to +DEFAULT_NODE_TYPES :type type_mapping: Optional[dict[type, str]] :return: The +parsed objects (tables and enums) :rtype: Union[dict, None]

    +
    + +
    +
    +static parse_schema_from_file(schema_file: str | Path, schema_directory_path: str | Path | None = None) DocumentNode[source]
    +

    Parse a schema from a file.

    +
    +
    Parameters:
    +

    schema_file – The name of the schema file :type schema_

    +
    +
    +

    file: +str +:param schema_directory_path: A path to a directory containing schemas +:type schema_directory_path: str +:return: The parsed schema +:rtype: DocumentNode +:raises Exception: If the schema cannot be parsed

    +
    + +
    +
    +static schema_equality_check(gold_node: Node, check_node: Node) bool[source]
    +

    A method to check if two schema nodes are equal. Only checks that the schemas +structures are equal, not the descriptions.

    +
    +
    Parameters:
    +

    gold_node – The gold standard schema node :type gold_node: Node :param

    +
    +
    +

    check_node: The schema node to check :type check_node: Node :return: Whether the +schemas are equal :rtype: bool

    +
    + +
    +
    +static schema_object_from_file(schema_file: str | Path, category: str | None = None, rating: int | None = None) SchemaObject[source]
    +

    Parse a schema object from a file.

    +
    + +
    +
    +static update_node_descriptions(node: Node, new_value: str | None = None) Node[source]
    +

    Given a GraphQL node, recursively traverse the node and its children, +updating all descriptions with the new value. Can also be used to remove +descriptions by passing None as the new value.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to update

    • +
    • new_value (Optional[str]) – The new description value. If None, the description will be +removed.

    • +
    +
    +
    Returns:
    +

    The updated node

    +
    +
    Return type:
    +

    Node

    +
    +
    +
    + +
    + +
    +
    +

    graphdoc.data.schema module

    +
    +
    +class graphdoc.data.schema.SchemaCategory(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ALMOST_PERFECT = 'almost perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor but correct'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaCategory | None[source]
    +
    + +
    + +
    +
    +class graphdoc.data.schema.SchemaCategoryPath(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +

    Maps schema categories to their folder names.

    +
    +
    +ALMOST_PERFECT = 'almost_perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor_but_correct'
    +
    + +
    +
    +classmethod get_path(category: SchemaCategory, folder_path: str | Path) Path | None[source]
    +

    Get the folder path for a given schema category and folder path.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding folder path

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.schema.SchemaCategoryRatingMapping[source]
    +

    Bases: object

    +

    Maps SchemaCategory to SchemaRating.

    +
    +
    +static get_category(rating: SchemaRating) SchemaCategory[source]
    +

    Get the corresponding category for a given schema rating.

    +
    +
    Parameters:
    +

    rating – The schema rating

    +
    +
    Returns:
    +

    The corresponding category

    +
    +
    +
    + +
    +
    +static get_rating(category: SchemaCategory) SchemaRating[source]
    +

    Get the corresponding rating for a given schema category.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding rating

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.schema.SchemaObject(key: str, category: enum.Enum | None = None, rating: enum.Enum | None = None, schema_name: str | None = None, schema_type: enum.Enum | None = None, schema_str: str | None = None, schema_ast: graphql.language.ast.Node | None = None)[source]
    +

    Bases: object

    +
    +
    +static _hf_schema_object_columns() Features[source]
    +

    Return the columns for the graph_doc dataset, based on the SchemaObject +fields.

    +
    +
    Returns:
    +

    The columns for the graph_doc dataset

    +
    +
    Return type:
    +

    Features

    +
    +
    +
    + +
    +
    +category: Enum | None = None
    +
    + +
    +
    +classmethod from_dict(data: dict, category_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, rating_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, type_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaType'>) SchemaObject[source]
    +

    Create SchemaObject from dictionary with validation.

    +
    +
    Parameters:
    +
      +
    • data – The data dictionary

    • +
    • category_enum – Custom Enum class for categories

    • +
    • rating_enum – Custom Enum class for ratings

    • +
    • type_enum – Custom Enum class for schema types

    • +
    +
    +
    +
    + +
    +
    +key: str
    +
    + +
    +
    +rating: Enum | None = None
    +
    + +
    +
    +schema_ast: Node | None = None
    +
    + +
    +
    +schema_name: str | None = None
    +
    + +
    +
    +schema_str: str | None = None
    +
    + +
    +
    +schema_type: Enum | None = None
    +
    + +
    +
    +to_dataset() Dataset[source]
    +

    Convert the SchemaObject to a Hugging Face Dataset.

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    Return type:
    +

    Dataset

    +
    +
    +
    + +
    +
    +to_dict() dict[source]
    +

    Convert the SchemaObject to a dictionary, excluding the key field.

    +
    +
    Returns:
    +

    Dictionary representation of the SchemaObject without the key

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.schema.SchemaRating(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +FOUR = '4'
    +
    + +
    +
    +ONE = '1'
    +
    + +
    +
    +THREE = '3'
    +
    + +
    +
    +TWO = '2'
    +
    + +
    +
    +ZERO = '0'
    +
    + +
    +
    +classmethod from_value(value: str | int) SchemaRating | None[source]
    +
    + +
    + +
    +
    +class graphdoc.data.schema.SchemaType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ENUM_SCHEMA = 'enum schema'
    +
    + +
    +
    +FULL_SCHEMA = 'full schema'
    +
    + +
    +
    +TABLE_SCHEMA = 'table schema'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaType | None[source]
    +
    + +
    + +
    +
    +graphdoc.data.schema.schema_objects_to_dataset(schema_objects: List[SchemaObject]) Dataset[source]
    +

    Convert a list of SchemaObjects to a Hugging Face Dataset.

    +
    +
    Parameters:
    +

    schema_objects – The list of SchemaObjects

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    +
    + +
    +
    +

    Module contents

    +
    +
    +class graphdoc.data.DspyDataHelper[source]
    +

    Bases: ABC

    +

    Abstract class for creating data objects related to a given dspy.Signature.

    +
    +
    +static _(prompt: Predict) Signature | SignatureMeta[source]
    +

    Given a dspy.Predict object, return a dspy.Signature object.

    +
    + +
    +
    +abstract static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +abstract static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static formatted_signature(signature: Signature | SignatureMeta, example: Example) str[source]
    +

    Given a dspy.Signature and a dspy.Example, return a formatted signature as a +string.

    +
    +
    Parameters:
    +
      +
    • signature (dspy.Signature) – A dspy.Signature object.

    • +
    • example (dspy.Example) – A dspy.Example object.

    • +
    +
    +
    Returns:
    +

    A formatted signature as a string.

    +
    +
    Return type:
    +

    str

    +
    +
    +
    + +
    +
    +abstract static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +abstract static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +abstract static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +prompt_signature() Signature | SignatureMeta[source]
    +

    Given a prompt, return a dspy.Signature object.

    +
    +
    Parameters:
    +

    prompt (Any) – A prompt.

    +
    +
    +
    + +
    +
    +abstract static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.GenerationDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Generation +dspy.Signature.

    +

    The example signature is defined as: +` +database_schema: str = dspy.InputField() +documented_schema: str = dspy.OutputField() +`

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.LocalDataHelper(schema_directory_path: str | ~pathlib._local.Path | None = None, categories: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, ratings: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, categories_ratings: ~typing.Callable = <function SchemaCategoryRatingMapping.get_rating>)[source]
    +

    Bases: object

    +

    A helper class for loading data from a directory.

    +
    +
    Parameters:
    +
      +
    • schema_directory_path (Union[str, Path] Defaults to the path to the schemas in +the graphdoc package.) – The path to the directory containing the schemas

    • +
    • categories (Type[Enum]) – The categories of the schemas. Defaults to SchemaCategory.

    • +
    • ratings (Type[Enum]) – The ratings of the schemas. Defaults to SchemaRating.

    • +
    • categories_ratings – A callable that maps categories to ratings. Defaults to +SchemaCategoryRatingMapping.get_rating.

    • +
    +
    +
    +
    +
    +folder_of_folders_to_dataset(folder_paths: ~typing.Type[~enum.Enum] = <enum 'SchemaCategoryPath'>, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths – Enum class defining folder paths, defaults to

    +
    +
    +

    SchemaCategoryPath. Must have a get_path method. :type folder_paths: Type[Enum] +:param parse_objects: Whether to parse the objects from the schemas :type +parse_objects: bool :param type_mapping: A dictionary mapping graphql-ast node +values to strings

    +
    + +
    +
    +folder_to_dataset(category: str, folder_path: str | Path, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    category – The category of the schemas :type category: str :param

    +
    +
    +

    folder_path: The path to the folder containing the schemas :type folder_path: +Union[str, Path] :param parse_objects: Whether to parse the objects from the +schemas :type parse_objects: bool :param type_mapping: A dictionary mapping +types to strings :type type_mapping: Optional[dict[type, str]]

    +
    + +
    +
    +schema_objects_from_folder(category: str, rating: int, folder_path: str | Path) dict[str, SchemaObject][source]
    +

    Load schemas from a folder, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_path – The path to the folder containing the schemas :type

    +
    +
    +

    folder_path: Union[str, Path] :param category: The category of the schemas :type +category: str :param rating: The rating of the schemas :type rating: int +:return: A dictionary of schemas :rtype: dict[str, SchemaObject]

    +
    + +
    +
    +schema_objects_from_folder_of_folders(folder_paths: ~typing.Type[~enum.Enum] | None = <enum 'SchemaCategoryPath'>) Dict[str, SchemaObject] | None[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths (Optional[Type[Enum]]) – Enum class defining folder paths, defaults to +SchemaCategoryPath. Must have a get_path method.

    +
    +
    Returns:
    +

    Dictionary of loaded schemas

    +
    +
    Return type:
    +

    Union[Dict[str, SchemaObject], None]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.MlflowDataHelper(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    Bases: object

    +
    +
    +__init__(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    A helper class for loading and saving models and metadata from mlflow.

    +
    +
    Parameters:
    +

    mlflow_tracking_uri – The uri of the mlflow tracking server. :type

    +
    +
    +

    mlflow_tracking_uri: Union[str, Path] :param mlflow_tracking_username: The +username for the mlflow tracking server. :type mlflow_tracking_username: str +:param mlflow_tracking_password: The password for the mlflow tracking server. +:type mlflow_tracking_password: str

    +
    + +
    +
    +latest_model_version(model_name: str)[source]
    +

    Load the latest version of a model from mlflow.

    +
    +
    Parameters:
    +

    model_name (str) – The name of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_args(load_model_args: Dict[str, str])[source]
    +

    Given a dictionary of arguments, load a model from mlflow. Ordering is +model_by_uri, model_by_name_and_version, latest_model_version.

    +
    +
    Parameters:
    +

    load_model_args (Dict[str, str]) – A dictionary of arguments.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_name_and_version(model_name: str, model_version: str)[source]
    +

    Load a model from mlflow by name and version.

    +
    +
    Parameters:
    +

    model_name – The name of the model to load. :type model_name: str :param

    +
    +
    +

    model_version: The version of the model to load. :type model_version: str +:return: The loaded model.

    +
    + +
    +
    +model_by_uri(model_uri: str)[source]
    +

    Load a model from mlflow by uri.

    +
    +
    Parameters:
    +

    model_uri (str) – The uri of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +run_parameters(run_id: str) dict[str, Any][source]
    +

    Load the parameters of a run from mlflow.

    +
    +
    Parameters:
    +

    run_id (str) – The id of the run to load the parameters from.

    +
    +
    Returns:
    +

    The parameters of the run.

    +
    +
    +
    + +
    +
    +save_model(model: Signature, model_signature: ModelSignature, model_name: str)[source]
    +

    Save a model to mlflow.

    +
    +
    Parameters:
    +

    model – The model to save. :type model: dspy.Signature :param

    +
    +
    +

    model_signature: The signature of the model. :type model_signature: +ModelSignature :param model_name: The name of the model to save. :type +model_name: str

    +
    + +
    +
    +set_auth_env_vars()[source]
    +

    Set the authentication environment variables.

    +
    + +
    +
    +update_auth_env_vars(mlflow_tracking_username: str, mlflow_tracking_password: str)[source]
    +

    Update the authentication environment variables.

    +
    +
    Parameters:
    +
      +
    • mlflow_tracking_username (str) – The username for the mlflow tracking server.

    • +
    • mlflow_tracking_password (str) – The password for the mlflow tracking server.

    • +
    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.Parser(type_mapping: dict[type, str] | None = None)[source]
    +

    Bases: object

    +

    A class for parsing and handling of GraphQL objects.

    +
    +
    +DEFAULT_NODE_TYPES = {<class 'graphql.language.ast.DocumentNode'>: 'full schema', <class 'graphql.language.ast.EnumTypeDefinitionNode'>: 'enum schema', <class 'graphql.language.ast.EnumValueDefinitionNode'>: 'enum value', <class 'graphql.language.ast.ObjectTypeDefinitionNode'>: 'table schema'}
    +
    + +
    +
    +static _check_node_type(node: Node, type_mapping: dict[type, str] | None = None) str[source]
    +

    Check the type of a schema node.

    +
    +
    Parameters:
    +

    node – The schema node to check :type node: Node :param type_mapping:

    +
    +
    +

    Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES :type +type_mapping: Optional[dict[type, str]] :return: The type of the schema node +:rtype: str

    +
    + +
    +
    +static count_description_pattern_matching(node: Node, pattern: str) dict[str, int][source]
    +

    Counts the number of times a pattern matches a description in a node and its +children.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to count the pattern matches in

    • +
    • pattern (str) – The pattern to count the matches of

    • +
    +
    +
    Returns:
    +

    A dictionary with the counts of matches

    +
    +
    Return type:
    +

    dict[str, int]

    +
    +
    +
    + +
    +
    +static fill_empty_descriptions(node: Node, new_column_value: str = 'Description for column: {}', new_table_value: str = 'Description for table: {}', use_value_name: bool = True, value_name: str | None = None)[source]
    +

    Recursively traverse the node and its children, filling in empty descriptions +with the new column or table value. Do not update descriptions that already have +a value. Default values are provided for the new column and table descriptions.

    +
    +
    Parameters:
    +

    node – The GraphQL node to update :type node: Node :param

    +
    +
    +

    new_column_value: The new column description value :type new_column_value: str +:param new_table_value: The new table description value :type new_table_value: +str :param use_value_name: Whether to use the value name in the description +:type use_value_name: bool :param value_name: The name of the value :type +value_name: Optional[str] :return: The updated node :rtype: Node

    +
    + +
    +
    +static parse_objects_from_full_schema_object(schema: SchemaObject, type_mapping: dict[type, str] | None = None) dict[str, SchemaObject] | None[source]
    +

    Parse out all available tables from a full schema object.

    +
    +
    Parameters:
    +

    schema – The full schema object to parse :type schema: SchemaObject :param

    +
    +
    +

    type_mapping: Custom mapping of node types to strings. Defaults to +DEFAULT_NODE_TYPES :type type_mapping: Optional[dict[type, str]] :return: The +parsed objects (tables and enums) :rtype: Union[dict, None]

    +
    + +
    +
    +static parse_schema_from_file(schema_file: str | Path, schema_directory_path: str | Path | None = None) DocumentNode[source]
    +

    Parse a schema from a file.

    +
    +
    Parameters:
    +

    schema_file – The name of the schema file :type schema_

    +
    +
    +

    file: +str +:param schema_directory_path: A path to a directory containing schemas +:type schema_directory_path: str +:return: The parsed schema +:rtype: DocumentNode +:raises Exception: If the schema cannot be parsed

    +
    + +
    +
    +static schema_equality_check(gold_node: Node, check_node: Node) bool[source]
    +

    A method to check if two schema nodes are equal. Only checks that the schemas +structures are equal, not the descriptions.

    +
    +
    Parameters:
    +

    gold_node – The gold standard schema node :type gold_node: Node :param

    +
    +
    +

    check_node: The schema node to check :type check_node: Node :return: Whether the +schemas are equal :rtype: bool

    +
    + +
    +
    +static schema_object_from_file(schema_file: str | Path, category: str | None = None, rating: int | None = None) SchemaObject[source]
    +

    Parse a schema object from a file.

    +
    + +
    +
    +static update_node_descriptions(node: Node, new_value: str | None = None) Node[source]
    +

    Given a GraphQL node, recursively traverse the node and its children, +updating all descriptions with the new value. Can also be used to remove +descriptions by passing None as the new value.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to update

    • +
    • new_value (Optional[str]) – The new description value. If None, the description will be +removed.

    • +
    +
    +
    Returns:
    +

    The updated node

    +
    +
    Return type:
    +

    Node

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.QualityDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Quality +dspy.Signature.

    +

    The example signature is defined as: +``` +database_schema: str = dspy.InputField() +category: Literal[“perfect”, “almost perfect”, “poor but correct”, “incorrect”] = (

    +
    +

    dspy.OutputField()

    +
    +

    ) +rating: Literal[4, 3, 2, 1] = dspy.OutputField() +```

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaCategory(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ALMOST_PERFECT = 'almost perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor but correct'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaCategory | None[source]
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaCategoryPath(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +

    Maps schema categories to their folder names.

    +
    +
    +ALMOST_PERFECT = 'almost_perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor_but_correct'
    +
    + +
    +
    +classmethod get_path(category: SchemaCategory, folder_path: str | Path) Path | None[source]
    +

    Get the folder path for a given schema category and folder path.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding folder path

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaCategoryRatingMapping[source]
    +

    Bases: object

    +

    Maps SchemaCategory to SchemaRating.

    +
    +
    +static get_category(rating: SchemaRating) SchemaCategory[source]
    +

    Get the corresponding category for a given schema rating.

    +
    +
    Parameters:
    +

    rating – The schema rating

    +
    +
    Returns:
    +

    The corresponding category

    +
    +
    +
    + +
    +
    +static get_rating(category: SchemaCategory) SchemaRating[source]
    +

    Get the corresponding rating for a given schema category.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding rating

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaObject(key: str, category: enum.Enum | None = None, rating: enum.Enum | None = None, schema_name: str | None = None, schema_type: enum.Enum | None = None, schema_str: str | None = None, schema_ast: graphql.language.ast.Node | None = None)[source]
    +

    Bases: object

    +
    +
    +static _hf_schema_object_columns() Features[source]
    +

    Return the columns for the graph_doc dataset, based on the SchemaObject +fields.

    +
    +
    Returns:
    +

    The columns for the graph_doc dataset

    +
    +
    Return type:
    +

    Features

    +
    +
    +
    + +
    +
    +category: Enum | None = None
    +
    + +
    +
    +classmethod from_dict(data: dict, category_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, rating_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, type_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaType'>) SchemaObject[source]
    +

    Create SchemaObject from dictionary with validation.

    +
    +
    Parameters:
    +
      +
    • data – The data dictionary

    • +
    • category_enum – Custom Enum class for categories

    • +
    • rating_enum – Custom Enum class for ratings

    • +
    • type_enum – Custom Enum class for schema types

    • +
    +
    +
    +
    + +
    +
    +key: str
    +
    + +
    +
    +rating: Enum | None = None
    +
    + +
    +
    +schema_ast: Node | None = None
    +
    + +
    +
    +schema_name: str | None = None
    +
    + +
    +
    +schema_str: str | None = None
    +
    + +
    +
    +schema_type: Enum | None = None
    +
    + +
    +
    +to_dataset() Dataset[source]
    +

    Convert the SchemaObject to a Hugging Face Dataset.

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    Return type:
    +

    Dataset

    +
    +
    +
    + +
    +
    +to_dict() dict[source]
    +

    Convert the SchemaObject to a dictionary, excluding the key field.

    +
    +
    Returns:
    +

    Dictionary representation of the SchemaObject without the key

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaRating(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +FOUR = '4'
    +
    + +
    +
    +ONE = '1'
    +
    + +
    +
    +THREE = '3'
    +
    + +
    +
    +TWO = '2'
    +
    + +
    +
    +ZERO = '0'
    +
    + +
    +
    +classmethod from_value(value: str | int) SchemaRating | None[source]
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ENUM_SCHEMA = 'enum schema'
    +
    + +
    +
    +FULL_SCHEMA = 'full schema'
    +
    + +
    +
    +TABLE_SCHEMA = 'table schema'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaType | None[source]
    +
    + +
    + +
    +
    +graphdoc.data._env_constructor(loader: SafeLoader, node: ScalarNode) str[source]
    +

    Custom constructor for environment variables.

    +
    +
    Parameters:
    +
      +
    • loader (yaml.SafeLoader) – The YAML loader.

    • +
    • node (yaml.nodes.ScalarNode) – The node to construct.

    • +
    +
    +
    Returns:
    +

    The environment variable value.

    +
    +
    Return type:
    +

    str

    +
    +
    Raises:
    +

    ValueError – If the environment variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.data.check_directory_path(directory_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid directory.

    +
    +
    Parameters:
    +

    directory_path (Union[str, Path]) – The path to check.

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid directory.

    +
    +
    Returns:
    +

    None

    +
    +
    Return type:
    +

    None

    +
    +
    +
    + +
    +
    +graphdoc.data.check_file_path(file_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid file.

    +
    +
    Parameters:
    +

    file_path – The path to check. :type file_path: Union[str, Path] :raises

    +
    +
    +

    ValueError: If the path does not resolve to a valid file. :return: None :rtype: None

    +
    + +
    +
    +graphdoc.data.load_yaml_config(file_path: str | Path, use_env: bool = True) dict[source]
    +

    Load a YAML configuration file.

    +
    +
    Parameters:
    +
      +
    • file_path (Union[str, Path]) – The path to the YAML file.

    • +
    • use_env (bool) – Whether to use environment variables.

    • +
    +
    +
    Returns:
    +

    The YAML configuration.

    +
    +
    Return type:
    +

    dict

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid file or the environment +variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.data.schema_objects_to_dataset(schema_objects: List[SchemaObject]) Dataset[source]
    +

    Convert a list of SchemaObjects to a Hugging Face Dataset.

    +
    +
    Parameters:
    +

    schema_objects – The list of SchemaObjects

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    +
    + +
    +
    +graphdoc.data.setup_logging(log_level: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'])[source]
    +

    Setup logging for the application.

    +
    +
    Parameters:
    +

    log_level (Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]) – The log level.

    +
    +
    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/graphdoc.data.mlflow_data.html b/graphdoc/docs/_build/html/graphdoc.data.mlflow_data.html new file mode 100644 index 0000000..4a966b6 --- /dev/null +++ b/graphdoc/docs/_build/html/graphdoc.data.mlflow_data.html @@ -0,0 +1,393 @@ + + + + + + + graphdoc.data.mlflow_data package — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    graphdoc.data.mlflow_data package

    +
    +

    Submodules

    +
    +
    +

    graphdoc.data.mlflow_data.mlflow_data_helper module

    +
    +
    +class graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    Bases: object

    +
    +
    +__init__(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    A helper class for loading and saving models and metadata from mlflow.

    +
    +
    Parameters:
    +

    mlflow_tracking_uri – The uri of the mlflow tracking server. :type

    +
    +
    +

    mlflow_tracking_uri: Union[str, Path] :param mlflow_tracking_username: The +username for the mlflow tracking server. :type mlflow_tracking_username: str +:param mlflow_tracking_password: The password for the mlflow tracking server. +:type mlflow_tracking_password: str

    +
    + +
    +
    +latest_model_version(model_name: str)[source]
    +

    Load the latest version of a model from mlflow.

    +
    +
    Parameters:
    +

    model_name (str) – The name of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_args(load_model_args: Dict[str, str])[source]
    +

    Given a dictionary of arguments, load a model from mlflow. Ordering is +model_by_uri, model_by_name_and_version, latest_model_version.

    +
    +
    Parameters:
    +

    load_model_args (Dict[str, str]) – A dictionary of arguments.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_name_and_version(model_name: str, model_version: str)[source]
    +

    Load a model from mlflow by name and version.

    +
    +
    Parameters:
    +

    model_name – The name of the model to load. :type model_name: str :param

    +
    +
    +

    model_version: The version of the model to load. :type model_version: str +:return: The loaded model.

    +
    + +
    +
    +model_by_uri(model_uri: str)[source]
    +

    Load a model from mlflow by uri.

    +
    +
    Parameters:
    +

    model_uri (str) – The uri of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +run_parameters(run_id: str) dict[str, Any][source]
    +

    Load the parameters of a run from mlflow.

    +
    +
    Parameters:
    +

    run_id (str) – The id of the run to load the parameters from.

    +
    +
    Returns:
    +

    The parameters of the run.

    +
    +
    +
    + +
    +
    +save_model(model: Signature, model_signature: ModelSignature, model_name: str)[source]
    +

    Save a model to mlflow.

    +
    +
    Parameters:
    +

    model – The model to save. :type model: dspy.Signature :param

    +
    +
    +

    model_signature: The signature of the model. :type model_signature: +ModelSignature :param model_name: The name of the model to save. :type +model_name: str

    +
    + +
    +
    +set_auth_env_vars()[source]
    +

    Set the authentication environment variables.

    +
    + +
    +
    +update_auth_env_vars(mlflow_tracking_username: str, mlflow_tracking_password: str)[source]
    +

    Update the authentication environment variables.

    +
    +
    Parameters:
    +
      +
    • mlflow_tracking_username (str) – The username for the mlflow tracking server.

    • +
    • mlflow_tracking_password (str) – The password for the mlflow tracking server.

    • +
    +
    +
    +
    + +
    + +
    +
    +

    Module contents

    +
    +
    +class graphdoc.data.mlflow_data.MlflowDataHelper(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    Bases: object

    +
    +
    +__init__(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    A helper class for loading and saving models and metadata from mlflow.

    +
    +
    Parameters:
    +

    mlflow_tracking_uri – The uri of the mlflow tracking server. :type

    +
    +
    +

    mlflow_tracking_uri: Union[str, Path] :param mlflow_tracking_username: The +username for the mlflow tracking server. :type mlflow_tracking_username: str +:param mlflow_tracking_password: The password for the mlflow tracking server. +:type mlflow_tracking_password: str

    +
    + +
    +
    +latest_model_version(model_name: str)[source]
    +

    Load the latest version of a model from mlflow.

    +
    +
    Parameters:
    +

    model_name (str) – The name of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_args(load_model_args: Dict[str, str])[source]
    +

    Given a dictionary of arguments, load a model from mlflow. Ordering is +model_by_uri, model_by_name_and_version, latest_model_version.

    +
    +
    Parameters:
    +

    load_model_args (Dict[str, str]) – A dictionary of arguments.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_name_and_version(model_name: str, model_version: str)[source]
    +

    Load a model from mlflow by name and version.

    +
    +
    Parameters:
    +

    model_name – The name of the model to load. :type model_name: str :param

    +
    +
    +

    model_version: The version of the model to load. :type model_version: str +:return: The loaded model.

    +
    + +
    +
    +model_by_uri(model_uri: str)[source]
    +

    Load a model from mlflow by uri.

    +
    +
    Parameters:
    +

    model_uri (str) – The uri of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +run_parameters(run_id: str) dict[str, Any][source]
    +

    Load the parameters of a run from mlflow.

    +
    +
    Parameters:
    +

    run_id (str) – The id of the run to load the parameters from.

    +
    +
    Returns:
    +

    The parameters of the run.

    +
    +
    +
    + +
    +
    +save_model(model: Signature, model_signature: ModelSignature, model_name: str)[source]
    +

    Save a model to mlflow.

    +
    +
    Parameters:
    +

    model – The model to save. :type model: dspy.Signature :param

    +
    +
    +

    model_signature: The signature of the model. :type model_signature: +ModelSignature :param model_name: The name of the model to save. :type +model_name: str

    +
    + +
    +
    +set_auth_env_vars()[source]
    +

    Set the authentication environment variables.

    +
    + +
    +
    +update_auth_env_vars(mlflow_tracking_username: str, mlflow_tracking_password: str)[source]
    +

    Update the authentication environment variables.

    +
    +
    Parameters:
    +
      +
    • mlflow_tracking_username (str) – The username for the mlflow tracking server.

    • +
    • mlflow_tracking_password (str) – The password for the mlflow tracking server.

    • +
    +
    +
    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/graphdoc.eval.html b/graphdoc/docs/_build/html/graphdoc.eval.html new file mode 100644 index 0000000..8a95267 --- /dev/null +++ b/graphdoc/docs/_build/html/graphdoc.eval.html @@ -0,0 +1,200 @@ + + + + + + + graphdoc.eval package — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    graphdoc.eval package

    +
    +

    Submodules

    +
    +
    +

    graphdoc.eval.doc_generator_eval module

    +
    +
    +class graphdoc.eval.doc_generator_eval.DocGeneratorEvaluator(generator: DocGeneratorModule | Module | Any, evaluator: DocQualityPrompt | SinglePrompt | Any, evalset: List[Example] | Any, mlflow_tracking_uri: str | Path, mlflow_experiment_name: str = 'doc_generator_eval', generator_prediction_field: str = 'documented_schema', evaluator_prediction_field: str = 'rating', readable_value: int = 25)[source]
    +

    Bases: Module

    +
    +
    +__init__(generator: DocGeneratorModule | Module | Any, evaluator: DocQualityPrompt | SinglePrompt | Any, evalset: List[Example] | Any, mlflow_tracking_uri: str | Path, mlflow_experiment_name: str = 'doc_generator_eval', generator_prediction_field: str = 'documented_schema', evaluator_prediction_field: str = 'rating', readable_value: int = 25)[source]
    +

    A simple module for evaluating the quality of generated documentation. We +will make this extensible to include more complex evaluation metrics in the +future.

    +

    Important: we assume that the rating values returned by the evaluator are +[1, 2, 3, 4]. We will make this more flexible in the future.

    +
    + +
    +
    +evaluate()[source]
    +

    Batches the evaluation set and logs the results to mlflow.

    +
    + +
    +
    +forward(database_schema: str) dict[str, Any][source]
    +

    Takes a database schema, documents it, and then evaluates each component and +the aggregate.

    +
    + +
    + +
    +
    +

    Module contents

    +
    +
    +class graphdoc.eval.DocGeneratorEvaluator(generator: DocGeneratorModule | Module | Any, evaluator: DocQualityPrompt | SinglePrompt | Any, evalset: List[Example] | Any, mlflow_tracking_uri: str | Path, mlflow_experiment_name: str = 'doc_generator_eval', generator_prediction_field: str = 'documented_schema', evaluator_prediction_field: str = 'rating', readable_value: int = 25)[source]
    +

    Bases: Module

    +
    +
    +__init__(generator: DocGeneratorModule | Module | Any, evaluator: DocQualityPrompt | SinglePrompt | Any, evalset: List[Example] | Any, mlflow_tracking_uri: str | Path, mlflow_experiment_name: str = 'doc_generator_eval', generator_prediction_field: str = 'documented_schema', evaluator_prediction_field: str = 'rating', readable_value: int = 25)[source]
    +

    A simple module for evaluating the quality of generated documentation. We +will make this extensible to include more complex evaluation metrics in the +future.

    +

    Important: we assume that the rating values returned by the evaluator are +[1, 2, 3, 4]. We will make this more flexible in the future.

    +
    + +
    +
    +evaluate()[source]
    +

    Batches the evaluation set and logs the results to mlflow.

    +
    + +
    +
    +forward(database_schema: str) dict[str, Any][source]
    +

    Takes a database schema, documents it, and then evaluates each component and +the aggregate.

    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/graphdoc.html b/graphdoc/docs/_build/html/graphdoc.html new file mode 100644 index 0000000..8bbca74 --- /dev/null +++ b/graphdoc/docs/_build/html/graphdoc.html @@ -0,0 +1,3144 @@ + + + + + + + graphdoc package — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    graphdoc package

    +
    +

    Subpackages

    +
    + +
    +
    +
    +

    Submodules

    +
    +
    +

    graphdoc.config module

    +
    +
    +graphdoc.config.doc_generator_eval_from_yaml(yaml_path: str | Path) DocGeneratorEvaluator[source]
    +

    Load a doc generator evaluator from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A DocGeneratorEvaluator object.

    +
    +
    Return type:
    +

    DocGeneratorEvaluator

    +
    +
    +
    + +
    +
    +graphdoc.config.doc_generator_module_from_dict(module_dict: dict, prompt: DocGeneratorPrompt | SinglePrompt) DocGeneratorModule[source]
    +

    Load a doc generator module from a dictionary of parameters.

    +
    +
    Parameters:
    +
      +
    • module_dict (dict) – Dictionary containing module parameters.

    • +
    • prompt (DocGeneratorPrompt) – The prompt to use for this module.

    • +
    +
    +
    Returns:
    +

    A DocGeneratorModule object.

    +
    +
    Return type:
    +

    DocGeneratorModule

    +
    +
    +
    + +
    +
    +graphdoc.config.doc_generator_module_from_yaml(yaml_path: str | Path) DocGeneratorModule[source]
    +

    Load a doc generator module from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A DocGeneratorModule object.

    +
    +
    Return type:
    +

    DocGeneratorModule

    +
    +
    +
    + +
    +
    +graphdoc.config.mlflow_data_helper_from_dict(mlflow_config: dict) MlflowDataHelper[source]
    +

    Load a mlflow data helper from a dictionary of parameters.

    +
    +
    Parameters:
    +

    mlflow_config (dict) – Dictionary containing mlflow parameters.

    +
    +
    +
    + +
    +
    +graphdoc.config.mlflow_data_helper_from_yaml(yaml_path: str | Path) MlflowDataHelper[source]
    +

    Load a mlflow data helper from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    +
    + +
    +
    +graphdoc.config.single_prompt_from_dict(prompt_dict: dict, prompt_metric: str | SinglePrompt, mlflow_dict: dict | None = None) SinglePrompt[source]
    +

    Load a single prompt from a dictionary of parameters.

    +
    +
    Parameters:
    +
      +
    • prompt_dict (dict) – Dictionary containing prompt information.

    • +
    • prompt_metric (Union[str, SinglePrompt]) – The metric to use to calculate the metric. +Can be another prompt signature or a string.

    • +
    +
    +
    Returns:
    +

    A SinglePrompt object.

    +
    +
    Return type:
    +

    SinglePrompt

    +
    +
    +
    + +
    +
    +graphdoc.config.single_prompt_from_yaml(yaml_path: str | Path) SinglePrompt[source]
    +

    Load a single prompt from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (str) – Path to the YAML file.

    +
    +
    Returns:
    +

    A SinglePrompt object.

    +
    +
    Return type:
    +

    SinglePrompt

    +
    +
    +
    + +
    +
    +graphdoc.config.single_trainer_from_dict(trainer_dict: dict, prompt: SinglePrompt, trainset: List[Example] | None = None, evalset: List[Example] | None = None) SinglePromptTrainer[source]
    +

    Load a single trainer from a dictionary of parameters.

    +
    +
    Parameters:
    +
      +
    • trainer_dict (dict) – Dictionary containing trainer parameters.

    • +
    • prompt (SinglePrompt) – The prompt to use for this trainer.

    • +
    +
    +
    Returns:
    +

    A SinglePromptTrainer object.

    +
    +
    Return type:
    +

    SinglePromptTrainer

    +
    +
    +
    + +
    +
    +graphdoc.config.single_trainer_from_yaml(yaml_path: str | Path) SinglePromptTrainer[source]
    +

    Load a single prompt trainer from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A SinglePromptTrainer object.

    +
    +
    Return type:
    +

    SinglePromptTrainer

    +
    +
    +
    + +
    +
    +graphdoc.config.split_trainset(trainset: List[Example], evalset_ratio: float, seed: int = 42) tuple[List[Example], List[Example]][source]
    +

    Split a trainset into a trainset and evalset.

    +
    +
    Parameters:
    +
      +
    • trainset – The trainset to split. :type trainset: List[dspy.Example]

    • +
    • evalset_ratio – The proportionate size of the evalset. :type

    • +
    +
    +
    +

    evalset_ratio: float :return: A tuple of trainset and evalset. :rtype: +tuple[List[dspy.Example], List[dspy.Example]]

    +
    + +
    +
    +graphdoc.config.trainset_and_evalset_from_yaml(yaml_path: str | Path) tuple[List[Example], List[Example]][source]
    +

    Load a trainset and evalset from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A tuple of trainset and evalset.

    +
    +
    Return type:
    +

    tuple[List[dspy.Example], List[dspy.Example]]

    +
    +
    +
    + +
    +
    +graphdoc.config.trainset_from_dict(trainset_dict: dict) List[Example][source]
    +

    Load a trainset from a dictionary of parameters.

    +
    +
    Parameters:
    +

    trainset_dict (dict) – Dictionary containing trainset parameters.

    +
    +
    Returns:
    +

    A trainset.

    +
    +
    Return type:
    +

    List[dspy.Example]

    +
    +
    +
    + +
    +
    +graphdoc.config.trainset_from_yaml(yaml_path: str | Path) List[Example][source]
    +

    Load a trainset from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A trainset.

    +
    +
    Return type:
    +

    List[dspy.Example]

    +
    +
    +
    + +
    +
    +

    graphdoc.main module

    +
    +
    +graphdoc.main.log = <Logger graphdoc.main (WARNING)>[source]
    +

    Run GraphDoc as a command-line application.

    +

    This module can be run directly to train models, generate documentation, +or evaluate documentation quality.

    +
    +
    Usage:

    python -m graphdoc.main –config CONFIG_FILE [–log-level LEVEL] COMMAND [ARGS]

    +
    +
    Global Arguments:
    +
    --config PATH
    +

    Path to YAML configuration file with GraphDoc +and language model settings

    +
    +
    --log-level LEVEL
    +

    Set logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) +Default: INFO

    +
    +
    +
    +
    Commands:
    +
    train Train a prompt using a dataset
    +
    --trainer-config PATH
    +

    Path to trainer YAML configuration

    +
    +
    +
    +
    generate Generate documentation for schema files
    +
    --module-config PATH
    +

    Path to module YAML configuration

    +
    +
    --input PATH
    +

    Path to input schema file or directory

    +
    +
    --output PATH
    +

    Path to output file

    +
    +
    +
    +
    evaluate Evaluate documentation quality
    +
    --eval-config PATH
    +

    Path to evaluator YAML configuration

    +
    +
    +
    +
    +
    +
    +
    +

    Examples

    +

    # Train a documentation quality model +python -m graphdoc.main –config config.yaml train –trainer-config trainer_config.yaml

    +

    # Generate documentation for schemas +python -m graphdoc.main –config config.yaml generate –module-config module_config.yaml –input schema.graphql –output documented_schema.graphql

    +

    # Evaluate documentation quality +python -m graphdoc.main –config config.yaml evaluate –eval-config eval_config.yaml

    +
    +
    +
    Configuration:

    See example YAML files in the documentation for format details.

    +
    +
    +
    + +
    +
    +

    Module contents

    +
    +
    +class graphdoc.BadDocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database.

    +

    ### Requirements: +- Every table, entity, enum, etc. must have at least one column with a description that is obviosly incorrect. +- The documentation must be incorrect and misleading. +- The documentation should be scattered, with only some columns having documentation.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.DocGeneratorEvaluator(generator: DocGeneratorModule | Module | Any, evaluator: DocQualityPrompt | SinglePrompt | Any, evalset: List[Example] | Any, mlflow_tracking_uri: str | Path, mlflow_experiment_name: str = 'doc_generator_eval', generator_prediction_field: str = 'documented_schema', evaluator_prediction_field: str = 'rating', readable_value: int = 25)[source]
    +

    Bases: Module

    +
    +
    +__init__(generator: DocGeneratorModule | Module | Any, evaluator: DocQualityPrompt | SinglePrompt | Any, evalset: List[Example] | Any, mlflow_tracking_uri: str | Path, mlflow_experiment_name: str = 'doc_generator_eval', generator_prediction_field: str = 'documented_schema', evaluator_prediction_field: str = 'rating', readable_value: int = 25)[source]
    +

    A simple module for evaluating the quality of generated documentation. We +will make this extensible to include more complex evaluation metrics in the +future.

    +

    Important: we assume that the rating values returned by the evaluator are +[1, 2, 3, 4]. We will make this more flexible in the future.

    +
    + +
    +
    +evaluate()[source]
    +

    Batches the evaluation set and logs the results to mlflow.

    +
    + +
    +
    +forward(database_schema: str) dict[str, Any][source]
    +

    Takes a database schema, documents it, and then evaluates each component and +the aggregate.

    +
    + +
    + +
    +
    +class graphdoc.DocGeneratorHelperSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums.

    +

    ### Requirements: +- If the field is unclear, and the documentation result is ambiguous, request additional information: “WARNING: Please provide additional information to avoid confusion”. +- Utilize only the verified information from the schema to ensure accuracy. +- Descriptions should be factual, straightforward, and avoid any speculative language. +- Refrain from using the phrase “in the { table } table” within your descriptions. +- Ensure that the documentation adheres to standard schema formatting without modifying the underlying schema structure.

    +

    ### Formatting: +- Maintain consistency with the existing documentation style and structure. +- Focus on clarity and precision to aid developers and system architects in understanding the schema’s components effectively.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.DocGeneratorModule(prompt: DocGeneratorPrompt | SinglePrompt, retry: bool = True, retry_limit: int = 1, rating_threshold: int = 3, fill_empty_descriptions: bool = True)[source]
    +

    Bases: Module

    +
    +
    +__init__(prompt: DocGeneratorPrompt | SinglePrompt, retry: bool = True, retry_limit: int = 1, rating_threshold: int = 3, fill_empty_descriptions: bool = True) None[source]
    +

    Initialize the DocGeneratorModule. A module for generating documentation for +a given GraphQL schema. Schemas are decomposed and individually used to generate +documentation, with a quality check after each generation.

    +
    +
    signature fields are:
      +
    • database_schema: str = dspy.InputField()

    • +
    • documented_schema: str = dspy.OutputField()

    • +
    +
    +
    +
    +
    Parameters:
    +
      +
    • prompt (DocGeneratorPrompt) – The prompt to use for generating documentation.

    • +
    • retry (bool) – Whether to retry the generation if the quality check fails.

    • +
    • retry_limit (int) – The maximum number of retries.

    • +
    • rating_threshold (int) – The minimum rating for a generated document to be +considered valid.

    • +
    +
    +
    +
    + +
    +
    +_predict(database_schema: str) Prediction[source]
    +

    Given a database schema, generate a documented schema. Performs the following +steps:

    +
      +
    • Check that the graphql is valid

    • +
    • Fill the empty descriptions (if fill_empty_descriptions is True)

    • +
    • Generate the documentation

    • +
    • Check that the generated schema is valid

    • +
    • Check that the generated schema matches the original schema

    • +
    +
    +
    Parameters:
    +

    database_schema (str) – The database schema to generate documentation for.

    +
    +
    Returns:
    +

    The generated documentation.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +_retry_by_rating(database_schema: str) str[source]
    +

    Retry the generation if the quality check fails. Rating threshold is +determined at initialization.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +
    +
    +

    database_schema: str :return: The generated documentation. :rtype: str

    +
    + +
    +
    +document_full_schema(database_schema: str, trace: bool = False, client: MlflowClient | None = None, expirement_name: str | None = None, api_key: str | None = None) Prediction[source]
    +

    Given a database schema, parse out the underlying components and document on +a per-component basis.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +
    +
    +

    database_schema: str :return: The generated documentation. :rtype: +dspy.Prediction

    +
    + +
    +
    +forward(database_schema: str) Prediction[source]
    +

    Given a database schema, generate a documented schema. If retry is True, the +generation will be retried if the quality check fails.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +
    +
    +

    database_schema: str :return: The generated documentation. :rtype: +dspy.Prediction

    +
    + +
    + +
    +
    +class graphdoc.DocGeneratorPrompt(prompt: str | Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: DocQualityPrompt)[source]
    +

    Bases: SinglePrompt

    +
    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the base and optimized metrics.

    +
    +
    Parameters:
    +

    base_metrics – The base metrics. :type base_metrics: Any :param

    +
    +
    +

    optimized_metrics: The optimized metrics.

    +
    + +
    +
    +evaluate_documentation_quality(schema: Example, pred: Prediction, trace=None, scalar=True) int[source]
    +

    Evaluate the quality of the documentation. Utilizes the instantiated metric +type to evaluate the quality of the documentation.

    +
    +
    Parameters:
    +
      +
    • schema (dspy.Example) – The schema to evaluate the documentation for.

    • +
    • pred (dspy.Prediction) – The predicted documentation.

    • +
    • trace (Any) – The trace of the prediction.

    • +
    • scalar (bool) – Whether to return a squared score or the full evaluation object.

    • +
    +
    +
    Returns:
    +

    The squared score or the full evaluation object.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    + +
    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Format the metric results into a dictionary.

    +
    +
    Parameters:
    +

    examples – The examples used to evaluate the metric. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results of the metric. :type results: +List :param scores: The scores of the metric. :type scores: List

    +
    + +
    + +
    +
    +class graphdoc.DocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate a precise description for the columns of the tables in the database.

    +

    ### Requirements: +- Focus solely on confirmed details from the provided schema. +- Keep the description concise and factual. +- Exclude any speculative or additional commentary. +- DO NOT return the phrase “in the { table } table” in your description.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.DocGeneratorTrainer(prompt: DocGeneratorPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: SinglePromptTrainer

    +
    +
    +__init__(prompt: DocGeneratorPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the DocGeneratorTrainer.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: DocGeneratorPrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set. :type trainset: +List[dspy.Example] :param evalset: The evaluation set. :type evalset: +List[dspy.Example]

    +
    + +
    +
    +_calculate_average_score(evaluation: dict) float[source]
    +

    Given a dictionary of evaluation results, calculate the average score.

    +
    +
    Parameters:
    +

    evaluation (Dict[str, Any]) – The evaluation results.

    +
    +
    Returns:
    +

    The average score.

    +
    +
    Return type:
    +

    float

    +
    +
    +
    + +
    +
    +evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +evaluation_metrics(base_evaluation: Dict[str, Any], optimized_evaluation: Dict[str, Any]) None[source]
    +

    Log evaluation metrics to mlflow.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Dict[str, Any] :param optimized_evaluation: The evaluation +metrics of the optimized model. :type optimized_evaluation: Dict[str, Any]

    +
    + +
    +
    +train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the document generator model.

    +
    +
    Parameters:
    +

    load_model_args – The arguments to load the model. :type load_model_args:

    +
    +
    +

    Optional[Dict[str, Any]] :param save_model: Whether to save the model. :type +save_model: bool :return: The trained model. :rtype: dspy.ChainOfThought

    +
    + +
    + +
    +
    +class graphdoc.DocQualityDemonstrationSignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity.

    +
    +

    perfect (4) example: +type Domain @entity {

    +
    +

    “ The namehash (id) of the parent name. References the Domain entity that is the parent of the current domain. Type: Domain ” +parent: Domain

    +
    +

    }

    +
    +
      +
    • +
      almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement.

      almost perfect (3) example: +type Token @entity {

      +
      +

      “ Name of the token, mirrored from the smart contract ” +name: String!

      +
      +

      }

      +
      +
      +
    • +
    • +
      poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect.

      poor but correct (2) example: +type InterestRate @entity {

      +
      +

      “Description for column: id” +id: ID!

      +
      +

      }

      +
      +
      +
    • +
    • +
      incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present.

      incorrect (1) example: +type BridgeProtocol implements Protocol @entity {

      +
      +

      “ Social Security Number of the protocol’s main developer ” +id: Bytes!

      +
      +

      }

      +
      +
      +
    • +
    +

    Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    + +
    +
    +class graphdoc.DocQualityPrompt(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating')[source]
    +

    Bases: SinglePrompt

    +
    +
    +__init__(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating') None[source]
    +

    Initialize the DocQualityPrompt. This is a single prompt that can be used to +evaluate the quality of the documentation for a given schema. This is a wrapper +around the SinglePrompt class that implements the abstract methods.

    +
    +
    Parameters:
    +

    prompt – The prompt to use. Can either be a string that maps to a defined

    +
    +
    +

    signature, as set in the doc_quality_factory, or a dspy.Signature. :type prompt: +Union[str, dspy.Signature] :param prompt_type: The type of prompt to use. :type +prompt_type: Union[Literal[“predict”, “chain_of_thought”], Callable] :param +prompt_metric: The metric to use. Can either be a string that maps to a defined +metric, as set in the doc_quality_factory, or a custom callable function. +Function must have the signature (example: dspy.Example, prediction: +dspy.Prediction) -> bool. :type prompt_metric: Union[Literal[“rating”, +“category”], Callable]

    +
    + +
    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Returns true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare.

    +
    + +
    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) bool[source]
    +

    Evaluate the metric for the given example and prediction.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: Used for DSPy. :type trace: Any +:return: The result of the evaluation. A boolean for if the metric is correct. +:rtype: bool

    +
    + +
    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Formats evaluation metrics into a structured report containing: +- Overall score across all categories +- Percentage correct per category +- Detailed results for each evaluation

    +
    +
    Parameters:
    +
      +
    • examples (List[dspy.Example]) – The examples to evaluate the metric on.

    • +
    • overall_score (float) – The overall score across all categories.

    • +
    • results (List) – The results of the evaluation.

    • +
    • scores (List) – The scores of the evaluation.

    • +
    +
    +
    Returns:
    +

    A dictionary containing the overall score, per category scores, and details. +{ “overall_score”: 0, “per_category_scores”: {}, “details”: [], “results”: [] }

    +
    +
    Return type:
    +

    Dict[str, Any]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.DocQualitySignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. +- almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement. +- poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect. +- incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present. +Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    + +
    +
    +class graphdoc.DocQualityTrainer(prompt: DocQualityPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: SinglePromptTrainer

    +
    +
    +__init__(prompt: DocQualityPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the DocQualityTrainer. This is the base class for implementing a +trainer for a DocQualityPrompt.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: DocQualityPrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set.

    +
    + +
    +
    +evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +evaluation_metrics(base_evaluation, optimized_evaluation)[source]
    +

    Log evaluation metrics to mlflow. We will log the overall scores and the per +category scores. Per category scores will be logged as a csv file.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the +optimized model. :type optimized_evaluation: Any

    +
    + +
    +
    +train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the model. If provided, we will load the model from mlflow. Otherwise, +we will use the provided DocQualityPrompt as the base model.

    +
    +
    Parameters:
    +
      +
    • load_model_args (Dict[str, Any]) – The arguments to load the model.

    • +
    • save_model (bool) – Whether to save the model.

    • +
    +
    +
    +
    + +
    + +
    +
    +class graphdoc.DspyDataHelper[source]
    +

    Bases: ABC

    +

    Abstract class for creating data objects related to a given dspy.Signature.

    +
    +
    +static _(prompt: Predict) Signature | SignatureMeta[source]
    +

    Given a dspy.Predict object, return a dspy.Signature object.

    +
    + +
    +
    +abstract static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +abstract static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static formatted_signature(signature: Signature | SignatureMeta, example: Example) str[source]
    +

    Given a dspy.Signature and a dspy.Example, return a formatted signature as a +string.

    +
    +
    Parameters:
    +
      +
    • signature (dspy.Signature) – A dspy.Signature object.

    • +
    • example (dspy.Example) – A dspy.Example object.

    • +
    +
    +
    Returns:
    +

    A formatted signature as a string.

    +
    +
    Return type:
    +

    str

    +
    +
    +
    + +
    +
    +abstract static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +abstract static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +abstract static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +prompt_signature() Signature | SignatureMeta[source]
    +

    Given a prompt, return a dspy.Signature object.

    +
    +
    Parameters:
    +

    prompt (Any) – A prompt.

    +
    +
    +
    + +
    +
    +abstract static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.GenerationDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Generation +dspy.Signature.

    +

    The example signature is defined as: +` +database_schema: str = dspy.InputField() +documented_schema: str = dspy.OutputField() +`

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.LocalDataHelper(schema_directory_path: str | ~pathlib._local.Path | None = None, categories: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, ratings: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, categories_ratings: ~typing.Callable = <function SchemaCategoryRatingMapping.get_rating>)[source]
    +

    Bases: object

    +

    A helper class for loading data from a directory.

    +
    +
    Parameters:
    +
      +
    • schema_directory_path (Union[str, Path] Defaults to the path to the schemas in +the graphdoc package.) – The path to the directory containing the schemas

    • +
    • categories (Type[Enum]) – The categories of the schemas. Defaults to SchemaCategory.

    • +
    • ratings (Type[Enum]) – The ratings of the schemas. Defaults to SchemaRating.

    • +
    • categories_ratings – A callable that maps categories to ratings. Defaults to +SchemaCategoryRatingMapping.get_rating.

    • +
    +
    +
    +
    +
    +folder_of_folders_to_dataset(folder_paths: ~typing.Type[~enum.Enum] = <enum 'SchemaCategoryPath'>, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths – Enum class defining folder paths, defaults to

    +
    +
    +

    SchemaCategoryPath. Must have a get_path method. :type folder_paths: Type[Enum] +:param parse_objects: Whether to parse the objects from the schemas :type +parse_objects: bool :param type_mapping: A dictionary mapping graphql-ast node +values to strings

    +
    + +
    +
    +folder_to_dataset(category: str, folder_path: str | Path, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    category – The category of the schemas :type category: str :param

    +
    +
    +

    folder_path: The path to the folder containing the schemas :type folder_path: +Union[str, Path] :param parse_objects: Whether to parse the objects from the +schemas :type parse_objects: bool :param type_mapping: A dictionary mapping +types to strings :type type_mapping: Optional[dict[type, str]]

    +
    + +
    +
    +schema_objects_from_folder(category: str, rating: int, folder_path: str | Path) dict[str, SchemaObject][source]
    +

    Load schemas from a folder, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_path – The path to the folder containing the schemas :type

    +
    +
    +

    folder_path: Union[str, Path] :param category: The category of the schemas :type +category: str :param rating: The rating of the schemas :type rating: int +:return: A dictionary of schemas :rtype: dict[str, SchemaObject]

    +
    + +
    +
    +schema_objects_from_folder_of_folders(folder_paths: ~typing.Type[~enum.Enum] | None = <enum 'SchemaCategoryPath'>) Dict[str, SchemaObject] | None[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths (Optional[Type[Enum]]) – Enum class defining folder paths, defaults to +SchemaCategoryPath. Must have a get_path method.

    +
    +
    Returns:
    +

    Dictionary of loaded schemas

    +
    +
    Return type:
    +

    Union[Dict[str, SchemaObject], None]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.MlflowDataHelper(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    Bases: object

    +
    +
    +__init__(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    A helper class for loading and saving models and metadata from mlflow.

    +
    +
    Parameters:
    +

    mlflow_tracking_uri – The uri of the mlflow tracking server. :type

    +
    +
    +

    mlflow_tracking_uri: Union[str, Path] :param mlflow_tracking_username: The +username for the mlflow tracking server. :type mlflow_tracking_username: str +:param mlflow_tracking_password: The password for the mlflow tracking server. +:type mlflow_tracking_password: str

    +
    + +
    +
    +latest_model_version(model_name: str)[source]
    +

    Load the latest version of a model from mlflow.

    +
    +
    Parameters:
    +

    model_name (str) – The name of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_args(load_model_args: Dict[str, str])[source]
    +

    Given a dictionary of arguments, load a model from mlflow. Ordering is +model_by_uri, model_by_name_and_version, latest_model_version.

    +
    +
    Parameters:
    +

    load_model_args (Dict[str, str]) – A dictionary of arguments.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_name_and_version(model_name: str, model_version: str)[source]
    +

    Load a model from mlflow by name and version.

    +
    +
    Parameters:
    +

    model_name – The name of the model to load. :type model_name: str :param

    +
    +
    +

    model_version: The version of the model to load. :type model_version: str +:return: The loaded model.

    +
    + +
    +
    +model_by_uri(model_uri: str)[source]
    +

    Load a model from mlflow by uri.

    +
    +
    Parameters:
    +

    model_uri (str) – The uri of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +run_parameters(run_id: str) dict[str, Any][source]
    +

    Load the parameters of a run from mlflow.

    +
    +
    Parameters:
    +

    run_id (str) – The id of the run to load the parameters from.

    +
    +
    Returns:
    +

    The parameters of the run.

    +
    +
    +
    + +
    +
    +save_model(model: Signature, model_signature: ModelSignature, model_name: str)[source]
    +

    Save a model to mlflow.

    +
    +
    Parameters:
    +

    model – The model to save. :type model: dspy.Signature :param

    +
    +
    +

    model_signature: The signature of the model. :type model_signature: +ModelSignature :param model_name: The name of the model to save. :type +model_name: str

    +
    + +
    +
    +set_auth_env_vars()[source]
    +

    Set the authentication environment variables.

    +
    + +
    +
    +update_auth_env_vars(mlflow_tracking_username: str, mlflow_tracking_password: str)[source]
    +

    Update the authentication environment variables.

    +
    +
    Parameters:
    +
      +
    • mlflow_tracking_username (str) – The username for the mlflow tracking server.

    • +
    • mlflow_tracking_password (str) – The password for the mlflow tracking server.

    • +
    +
    +
    +
    + +
    + +
    +
    +class graphdoc.Parser(type_mapping: dict[type, str] | None = None)[source]
    +

    Bases: object

    +

    A class for parsing and handling of GraphQL objects.

    +
    +
    +DEFAULT_NODE_TYPES = {<class 'graphql.language.ast.DocumentNode'>: 'full schema', <class 'graphql.language.ast.EnumTypeDefinitionNode'>: 'enum schema', <class 'graphql.language.ast.EnumValueDefinitionNode'>: 'enum value', <class 'graphql.language.ast.ObjectTypeDefinitionNode'>: 'table schema'}
    +
    + +
    +
    +static _check_node_type(node: Node, type_mapping: dict[type, str] | None = None) str[source]
    +

    Check the type of a schema node.

    +
    +
    Parameters:
    +

    node – The schema node to check :type node: Node :param type_mapping:

    +
    +
    +

    Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES :type +type_mapping: Optional[dict[type, str]] :return: The type of the schema node +:rtype: str

    +
    + +
    +
    +static count_description_pattern_matching(node: Node, pattern: str) dict[str, int][source]
    +

    Counts the number of times a pattern matches a description in a node and its +children.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to count the pattern matches in

    • +
    • pattern (str) – The pattern to count the matches of

    • +
    +
    +
    Returns:
    +

    A dictionary with the counts of matches

    +
    +
    Return type:
    +

    dict[str, int]

    +
    +
    +
    + +
    +
    +static fill_empty_descriptions(node: Node, new_column_value: str = 'Description for column: {}', new_table_value: str = 'Description for table: {}', use_value_name: bool = True, value_name: str | None = None)[source]
    +

    Recursively traverse the node and its children, filling in empty descriptions +with the new column or table value. Do not update descriptions that already have +a value. Default values are provided for the new column and table descriptions.

    +
    +
    Parameters:
    +

    node – The GraphQL node to update :type node: Node :param

    +
    +
    +

    new_column_value: The new column description value :type new_column_value: str +:param new_table_value: The new table description value :type new_table_value: +str :param use_value_name: Whether to use the value name in the description +:type use_value_name: bool :param value_name: The name of the value :type +value_name: Optional[str] :return: The updated node :rtype: Node

    +
    + +
    +
    +static parse_objects_from_full_schema_object(schema: SchemaObject, type_mapping: dict[type, str] | None = None) dict[str, SchemaObject] | None[source]
    +

    Parse out all available tables from a full schema object.

    +
    +
    Parameters:
    +

    schema – The full schema object to parse :type schema: SchemaObject :param

    +
    +
    +

    type_mapping: Custom mapping of node types to strings. Defaults to +DEFAULT_NODE_TYPES :type type_mapping: Optional[dict[type, str]] :return: The +parsed objects (tables and enums) :rtype: Union[dict, None]

    +
    + +
    +
    +static parse_schema_from_file(schema_file: str | Path, schema_directory_path: str | Path | None = None) DocumentNode[source]
    +

    Parse a schema from a file.

    +
    +
    Parameters:
    +

    schema_file – The name of the schema file :type schema_

    +
    +
    +

    file: +str +:param schema_directory_path: A path to a directory containing schemas +:type schema_directory_path: str +:return: The parsed schema +:rtype: DocumentNode +:raises Exception: If the schema cannot be parsed

    +
    + +
    +
    +static schema_equality_check(gold_node: Node, check_node: Node) bool[source]
    +

    A method to check if two schema nodes are equal. Only checks that the schemas +structures are equal, not the descriptions.

    +
    +
    Parameters:
    +

    gold_node – The gold standard schema node :type gold_node: Node :param

    +
    +
    +

    check_node: The schema node to check :type check_node: Node :return: Whether the +schemas are equal :rtype: bool

    +
    + +
    +
    +static schema_object_from_file(schema_file: str | Path, category: str | None = None, rating: int | None = None) SchemaObject[source]
    +

    Parse a schema object from a file.

    +
    + +
    +
    +static update_node_descriptions(node: Node, new_value: str | None = None) Node[source]
    +

    Given a GraphQL node, recursively traverse the node and its children, +updating all descriptions with the new value. Can also be used to remove +descriptions by passing None as the new value.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to update

    • +
    • new_value (Optional[str]) – The new description value. If None, the description will be +removed.

    • +
    +
    +
    Returns:
    +

    The updated node

    +
    +
    Return type:
    +

    Node

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.PromptFactory[source]
    +

    Bases: object

    +
    +
    +static single_prompt(prompt: str | Signature | SignatureMeta, prompt_class: str, prompt_type: str, prompt_metric: str | DocQualityPrompt | SinglePrompt) SinglePrompt[source]
    +

    Returns an instance of the specified prompt class. Allows for the user to +pass in their own dspy signature.

    +
    +
    Parameters:
    +
      +
    • prompt – The prompt to use. :type prompt: Union[str, dspy.Signature]

    • +
    • prompt_class – The class of the prompt to use. :type prompt_class: str

    • +
    • prompt_type – The type of the prompt to use. :type prompt_type: str :param

    • +
    +
    +
    +

    prompt_metric: The metric to use for the prompt. :type prompt_metric: Union[str, +DocQualityPrompt, SinglePrompt] :return: An instance of the specified prompt +class. :rtype: SinglePrompt

    +
    + +
    + +
    +
    +class graphdoc.QualityDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Quality +dspy.Signature.

    +

    The example signature is defined as: +``` +database_schema: str = dspy.InputField() +category: Literal[“perfect”, “almost perfect”, “poor but correct”, “incorrect”] = (

    +
    +

    dspy.OutputField()

    +
    +

    ) +rating: Literal[4, 3, 2, 1] = dspy.OutputField() +```

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.SchemaCategory(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ALMOST_PERFECT = 'almost perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor but correct'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaCategory | None[source]
    +
    + +
    + +
    +
    +class graphdoc.SchemaCategoryPath(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +

    Maps schema categories to their folder names.

    +
    +
    +ALMOST_PERFECT = 'almost_perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor_but_correct'
    +
    + +
    +
    +classmethod get_path(category: SchemaCategory, folder_path: str | Path) Path | None[source]
    +

    Get the folder path for a given schema category and folder path.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding folder path

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.SchemaCategoryRatingMapping[source]
    +

    Bases: object

    +

    Maps SchemaCategory to SchemaRating.

    +
    +
    +static get_category(rating: SchemaRating) SchemaCategory[source]
    +

    Get the corresponding category for a given schema rating.

    +
    +
    Parameters:
    +

    rating – The schema rating

    +
    +
    Returns:
    +

    The corresponding category

    +
    +
    +
    + +
    +
    +static get_rating(category: SchemaCategory) SchemaRating[source]
    +

    Get the corresponding rating for a given schema category.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding rating

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.SchemaObject(key: str, category: enum.Enum | None = None, rating: enum.Enum | None = None, schema_name: str | None = None, schema_type: enum.Enum | None = None, schema_str: str | None = None, schema_ast: graphql.language.ast.Node | None = None)[source]
    +

    Bases: object

    +
    +
    +static _hf_schema_object_columns() Features[source]
    +

    Return the columns for the graph_doc dataset, based on the SchemaObject +fields.

    +
    +
    Returns:
    +

    The columns for the graph_doc dataset

    +
    +
    Return type:
    +

    Features

    +
    +
    +
    + +
    +
    +category: Enum | None = None
    +
    + +
    +
    +classmethod from_dict(data: dict, category_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, rating_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, type_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaType'>) SchemaObject[source]
    +

    Create SchemaObject from dictionary with validation.

    +
    +
    Parameters:
    +
      +
    • data – The data dictionary

    • +
    • category_enum – Custom Enum class for categories

    • +
    • rating_enum – Custom Enum class for ratings

    • +
    • type_enum – Custom Enum class for schema types

    • +
    +
    +
    +
    + +
    +
    +key: str
    +
    + +
    +
    +rating: Enum | None = None
    +
    + +
    +
    +schema_ast: Node | None = None
    +
    + +
    +
    +schema_name: str | None = None
    +
    + +
    +
    +schema_str: str | None = None
    +
    + +
    +
    +schema_type: Enum | None = None
    +
    + +
    +
    +to_dataset() Dataset[source]
    +

    Convert the SchemaObject to a Hugging Face Dataset.

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    Return type:
    +

    Dataset

    +
    +
    +
    + +
    +
    +to_dict() dict[source]
    +

    Convert the SchemaObject to a dictionary, excluding the key field.

    +
    +
    Returns:
    +

    Dictionary representation of the SchemaObject without the key

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.SchemaRating(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +FOUR = '4'
    +
    + +
    +
    +ONE = '1'
    +
    + +
    +
    +THREE = '3'
    +
    + +
    +
    +TWO = '2'
    +
    + +
    +
    +ZERO = '0'
    +
    + +
    +
    +classmethod from_value(value: str | int) SchemaRating | None[source]
    +
    + +
    + +
    +
    +class graphdoc.SchemaType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ENUM_SCHEMA = 'enum schema'
    +
    + +
    +
    +FULL_SCHEMA = 'full schema'
    +
    + +
    +
    +TABLE_SCHEMA = 'table schema'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaType | None[source]
    +
    + +
    + +
    +
    +class graphdoc.SinglePrompt(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any)[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any) None[source]
    +

    Initialize a single prompt.

    +
    +
    Parameters:
    +
      +
    • prompt (dspy.Signature) – The prompt to use.

    • +
    • prompt_type (Union[Literal["predict", "chain_of_thought"], Callable]) – The type of prompt to use. Can be “predict” or +“chain_of_thought”. Optionally, pass another dspy.Module.

    • +
    • prompt_metric (Any) – The metric to use. Marked as Any for flexibility (as +metrics can be other prompts).

    • +
    +
    +
    +
    + +
    +
    +abstract compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Return true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare the metrics +on. Determines which metric is used to compare the models. :type +comparison_value: str :return: True if the optimized model is better than the +base model, False otherwise. :rtype: bool

    +
    + +
    +
    +evaluate_evalset(examples: List[Example], num_threads: int = 1, display_progress: bool = True, display_table: bool = True) Dict[str, Any][source]
    +

    Take in a list of examples and evaluate the results.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the results on. :type examples:

    +
    +
    +

    List[dspy.Example] :param num_threads: The number of threads to use for +evaluation. :type num_threads: int :param display_progress: Whether to display +the progress of the evaluation. :type display_progress: bool :param +display_table: Whether to display the table of the evaluation. :type +display_table: bool :return: A dictionary containing the overall score, results, +and scores. :rtype: Dict[str, Any]

    +
    + +
    +
    +abstract evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +abstract format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    This takes the results from the evaluate_evalset and does any necessary +formatting, taking into account the metric type.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the metric on. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results from the evaluate_evalset. +:type results: List :param scores: The scores from the evaluate_evalset. :type +scores: List

    +
    + +
    + +
    +
    +class graphdoc.SinglePromptTrainer(prompt: SinglePrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: SinglePrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the SinglePromptTrainer. This is the base class for implementing a +trainer for a single prompt.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: SinglePrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set. :type trainset: +List[dspy.Example]

    +
    + +
    +
    +abstract evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +abstract evaluation_metrics(base_evaluation, optimized_evaluation)[source]
    +

    Log evaluation metrics to mlflow.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the +optimized model. :type optimized_evaluation: Any

    +
    + +
    +
    +abstract train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the model.

    +
    +
    Parameters:
    +
      +
    • load_model_args (Dict[str, Any]) – The arguments to load the model.

    • +
    • save_model (bool) – Whether to save the model.

    • +
    +
    +
    +
    + +
    + +
    +
    +graphdoc._env_constructor(loader: SafeLoader, node: ScalarNode) str[source]
    +

    Custom constructor for environment variables.

    +
    +
    Parameters:
    +
      +
    • loader (yaml.SafeLoader) – The YAML loader.

    • +
    • node (yaml.nodes.ScalarNode) – The node to construct.

    • +
    +
    +
    Returns:
    +

    The environment variable value.

    +
    +
    Return type:
    +

    str

    +
    +
    Raises:
    +

    ValueError – If the environment variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.check_directory_path(directory_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid directory.

    +
    +
    Parameters:
    +

    directory_path (Union[str, Path]) – The path to check.

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid directory.

    +
    +
    Returns:
    +

    None

    +
    +
    Return type:
    +

    None

    +
    +
    +
    + +
    +
    +graphdoc.check_file_path(file_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid file.

    +
    +
    Parameters:
    +

    file_path – The path to check. :type file_path: Union[str, Path] :raises

    +
    +
    +

    ValueError: If the path does not resolve to a valid file. :return: None :rtype: None

    +
    + +
    +
    +graphdoc.doc_generator_eval_from_yaml(yaml_path: str | Path) DocGeneratorEvaluator[source]
    +

    Load a doc generator evaluator from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A DocGeneratorEvaluator object.

    +
    +
    Return type:
    +

    DocGeneratorEvaluator

    +
    +
    +
    + +
    +
    +graphdoc.doc_generator_module_from_dict(module_dict: dict, prompt: DocGeneratorPrompt | SinglePrompt) DocGeneratorModule[source]
    +

    Load a doc generator module from a dictionary of parameters.

    +
    +
    Parameters:
    +
      +
    • module_dict (dict) – Dictionary containing module parameters.

    • +
    • prompt (DocGeneratorPrompt) – The prompt to use for this module.

    • +
    +
    +
    Returns:
    +

    A DocGeneratorModule object.

    +
    +
    Return type:
    +

    DocGeneratorModule

    +
    +
    +
    + +
    +
    +graphdoc.doc_generator_module_from_yaml(yaml_path: str | Path) DocGeneratorModule[source]
    +

    Load a doc generator module from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A DocGeneratorModule object.

    +
    +
    Return type:
    +

    DocGeneratorModule

    +
    +
    +
    + +
    +
    +graphdoc.load_yaml_config(file_path: str | Path, use_env: bool = True) dict[source]
    +

    Load a YAML configuration file.

    +
    +
    Parameters:
    +
      +
    • file_path (Union[str, Path]) – The path to the YAML file.

    • +
    • use_env (bool) – Whether to use environment variables.

    • +
    +
    +
    Returns:
    +

    The YAML configuration.

    +
    +
    Return type:
    +

    dict

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid file or the environment +variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.mlflow_data_helper_from_dict(mlflow_config: dict) MlflowDataHelper[source]
    +

    Load a mlflow data helper from a dictionary of parameters.

    +
    +
    Parameters:
    +

    mlflow_config (dict) – Dictionary containing mlflow parameters.

    +
    +
    +
    + +
    +
    +graphdoc.mlflow_data_helper_from_yaml(yaml_path: str | Path) MlflowDataHelper[source]
    +

    Load a mlflow data helper from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    +
    + +
    +
    +graphdoc.optimizer_class(optimizer_type: str, optimizer_kwargs: Dict[str, Any])[source]
    +
    + +
    +
    +graphdoc.optimizer_compile(optimizer_type: str, optimizer_kwargs: Dict[str, Any])[source]
    +

    Compiles the optimizer given the optimizer type and optimizer kwargs.

    +

    Optimizer kwargs are optimizer specific, and must include a student field that maps +to a dspy.ChainOfThought, dspy.Predict, etc.

    +
    + +
    +
    +graphdoc.schema_objects_to_dataset(schema_objects: List[SchemaObject]) Dataset[source]
    +

    Convert a list of SchemaObjects to a Hugging Face Dataset.

    +
    +
    Parameters:
    +

    schema_objects – The list of SchemaObjects

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    +
    + +
    +
    +graphdoc.setup_logging(log_level: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'])[source]
    +

    Setup logging for the application.

    +
    +
    Parameters:
    +

    log_level (Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]) – The log level.

    +
    +
    +
    + +
    +
    +graphdoc.single_prompt_from_dict(prompt_dict: dict, prompt_metric: str | SinglePrompt, mlflow_dict: dict | None = None) SinglePrompt[source]
    +

    Load a single prompt from a dictionary of parameters.

    +
    +
    Parameters:
    +
      +
    • prompt_dict (dict) – Dictionary containing prompt information.

    • +
    • prompt_metric (Union[str, SinglePrompt]) – The metric to use to calculate the metric. +Can be another prompt signature or a string.

    • +
    +
    +
    Returns:
    +

    A SinglePrompt object.

    +
    +
    Return type:
    +

    SinglePrompt

    +
    +
    +
    + +
    +
    +graphdoc.single_prompt_from_yaml(yaml_path: str | Path) SinglePrompt[source]
    +

    Load a single prompt from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (str) – Path to the YAML file.

    +
    +
    Returns:
    +

    A SinglePrompt object.

    +
    +
    Return type:
    +

    SinglePrompt

    +
    +
    +
    + +
    +
    +graphdoc.single_trainer_from_dict(trainer_dict: dict, prompt: SinglePrompt, trainset: List[Example] | None = None, evalset: List[Example] | None = None) SinglePromptTrainer[source]
    +

    Load a single trainer from a dictionary of parameters.

    +
    +
    Parameters:
    +
      +
    • trainer_dict (dict) – Dictionary containing trainer parameters.

    • +
    • prompt (SinglePrompt) – The prompt to use for this trainer.

    • +
    +
    +
    Returns:
    +

    A SinglePromptTrainer object.

    +
    +
    Return type:
    +

    SinglePromptTrainer

    +
    +
    +
    + +
    +
    +graphdoc.single_trainer_from_yaml(yaml_path: str | Path) SinglePromptTrainer[source]
    +

    Load a single prompt trainer from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A SinglePromptTrainer object.

    +
    +
    Return type:
    +

    SinglePromptTrainer

    +
    +
    +
    + +
    +
    +graphdoc.split_trainset(trainset: List[Example], evalset_ratio: float, seed: int = 42) tuple[List[Example], List[Example]][source]
    +

    Split a trainset into a trainset and evalset.

    +
    +
    Parameters:
    +
      +
    • trainset – The trainset to split. :type trainset: List[dspy.Example]

    • +
    • evalset_ratio – The proportionate size of the evalset. :type

    • +
    +
    +
    +

    evalset_ratio: float :return: A tuple of trainset and evalset. :rtype: +tuple[List[dspy.Example], List[dspy.Example]]

    +
    + +
    +
    +graphdoc.trainset_and_evalset_from_yaml(yaml_path: str | Path) tuple[List[Example], List[Example]][source]
    +

    Load a trainset and evalset from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A tuple of trainset and evalset.

    +
    +
    Return type:
    +

    tuple[List[dspy.Example], List[dspy.Example]]

    +
    +
    +
    + +
    +
    +graphdoc.trainset_from_dict(trainset_dict: dict) List[Example][source]
    +

    Load a trainset from a dictionary of parameters.

    +
    +
    Parameters:
    +

    trainset_dict (dict) – Dictionary containing trainset parameters.

    +
    +
    Returns:
    +

    A trainset.

    +
    +
    Return type:
    +

    List[dspy.Example]

    +
    +
    +
    + +
    +
    +graphdoc.trainset_from_yaml(yaml_path: str | Path) List[Example][source]
    +

    Load a trainset from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A trainset.

    +
    +
    Return type:
    +

    List[dspy.Example]

    +
    +
    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/graphdoc.modules.html b/graphdoc/docs/_build/html/graphdoc.modules.html new file mode 100644 index 0000000..52cfe46 --- /dev/null +++ b/graphdoc/docs/_build/html/graphdoc.modules.html @@ -0,0 +1,338 @@ + + + + + + + graphdoc.modules package — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    graphdoc.modules package

    +
    +

    Submodules

    +
    +
    +

    graphdoc.modules.doc_generator_module module

    +
    +
    +class graphdoc.modules.doc_generator_module.DocGeneratorModule(prompt: DocGeneratorPrompt | SinglePrompt, retry: bool = True, retry_limit: int = 1, rating_threshold: int = 3, fill_empty_descriptions: bool = True)[source]
    +

    Bases: Module

    +
    +
    +__init__(prompt: DocGeneratorPrompt | SinglePrompt, retry: bool = True, retry_limit: int = 1, rating_threshold: int = 3, fill_empty_descriptions: bool = True) None[source]
    +

    Initialize the DocGeneratorModule. A module for generating documentation for +a given GraphQL schema. Schemas are decomposed and individually used to generate +documentation, with a quality check after each generation.

    +
    +
    signature fields are:
      +
    • database_schema: str = dspy.InputField()

    • +
    • documented_schema: str = dspy.OutputField()

    • +
    +
    +
    +
    +
    Parameters:
    +
      +
    • prompt (DocGeneratorPrompt) – The prompt to use for generating documentation.

    • +
    • retry (bool) – Whether to retry the generation if the quality check fails.

    • +
    • retry_limit (int) – The maximum number of retries.

    • +
    • rating_threshold (int) – The minimum rating for a generated document to be +considered valid.

    • +
    +
    +
    +
    + +
    +
    +_predict(database_schema: str) Prediction[source]
    +

    Given a database schema, generate a documented schema. Performs the following +steps:

    +
      +
    • Check that the graphql is valid

    • +
    • Fill the empty descriptions (if fill_empty_descriptions is True)

    • +
    • Generate the documentation

    • +
    • Check that the generated schema is valid

    • +
    • Check that the generated schema matches the original schema

    • +
    +
    +
    Parameters:
    +

    database_schema (str) – The database schema to generate documentation for.

    +
    +
    Returns:
    +

    The generated documentation.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +_retry_by_rating(database_schema: str) str[source]
    +

    Retry the generation if the quality check fails. Rating threshold is +determined at initialization.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +
    +
    +

    database_schema: str :return: The generated documentation. :rtype: str

    +
    + +
    +
    +document_full_schema(database_schema: str, trace: bool = False, client: MlflowClient | None = None, expirement_name: str | None = None, api_key: str | None = None) Prediction[source]
    +

    Given a database schema, parse out the underlying components and document on +a per-component basis.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +
    +
    +

    database_schema: str :return: The generated documentation. :rtype: +dspy.Prediction

    +
    + +
    +
    +forward(database_schema: str) Prediction[source]
    +

    Given a database schema, generate a documented schema. If retry is True, the +generation will be retried if the quality check fails.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +
    +
    +

    database_schema: str :return: The generated documentation. :rtype: +dspy.Prediction

    +
    + +
    + +
    +
    +

    Module contents

    +
    +
    +class graphdoc.modules.DocGeneratorModule(prompt: DocGeneratorPrompt | SinglePrompt, retry: bool = True, retry_limit: int = 1, rating_threshold: int = 3, fill_empty_descriptions: bool = True)[source]
    +

    Bases: Module

    +
    +
    +__init__(prompt: DocGeneratorPrompt | SinglePrompt, retry: bool = True, retry_limit: int = 1, rating_threshold: int = 3, fill_empty_descriptions: bool = True) None[source]
    +

    Initialize the DocGeneratorModule. A module for generating documentation for +a given GraphQL schema. Schemas are decomposed and individually used to generate +documentation, with a quality check after each generation.

    +
    +
    signature fields are:
      +
    • database_schema: str = dspy.InputField()

    • +
    • documented_schema: str = dspy.OutputField()

    • +
    +
    +
    +
    +
    Parameters:
    +
      +
    • prompt (DocGeneratorPrompt) – The prompt to use for generating documentation.

    • +
    • retry (bool) – Whether to retry the generation if the quality check fails.

    • +
    • retry_limit (int) – The maximum number of retries.

    • +
    • rating_threshold (int) – The minimum rating for a generated document to be +considered valid.

    • +
    +
    +
    +
    + +
    +
    +_predict(database_schema: str) Prediction[source]
    +

    Given a database schema, generate a documented schema. Performs the following +steps:

    +
      +
    • Check that the graphql is valid

    • +
    • Fill the empty descriptions (if fill_empty_descriptions is True)

    • +
    • Generate the documentation

    • +
    • Check that the generated schema is valid

    • +
    • Check that the generated schema matches the original schema

    • +
    +
    +
    Parameters:
    +

    database_schema (str) – The database schema to generate documentation for.

    +
    +
    Returns:
    +

    The generated documentation.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +_retry_by_rating(database_schema: str) str[source]
    +

    Retry the generation if the quality check fails. Rating threshold is +determined at initialization.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +
    +
    +

    database_schema: str :return: The generated documentation. :rtype: str

    +
    + +
    +
    +document_full_schema(database_schema: str, trace: bool = False, client: MlflowClient | None = None, expirement_name: str | None = None, api_key: str | None = None) Prediction[source]
    +

    Given a database schema, parse out the underlying components and document on +a per-component basis.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +
    +
    +

    database_schema: str :return: The generated documentation. :rtype: +dspy.Prediction

    +
    + +
    +
    +forward(database_schema: str) Prediction[source]
    +

    Given a database schema, generate a documented schema. If retry is True, the +generation will be retried if the quality check fails.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +
    +
    +

    database_schema: str :return: The generated documentation. :rtype: +dspy.Prediction

    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/graphdoc.prompts.html b/graphdoc/docs/_build/html/graphdoc.prompts.html new file mode 100644 index 0000000..8ca8105 --- /dev/null +++ b/graphdoc/docs/_build/html/graphdoc.prompts.html @@ -0,0 +1,1090 @@ + + + + + + + graphdoc.prompts package — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    graphdoc.prompts package

    +
    +

    Submodules

    +
    +
    +

    graphdoc.prompts.schema_doc_generation module

    +
    +
    +class graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database.

    +

    ### Requirements: +- Every table, entity, enum, etc. must have at least one column with a description that is obviosly incorrect. +- The documentation must be incorrect and misleading. +- The documentation should be scattered, with only some columns having documentation.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums.

    +

    ### Requirements: +- If the field is unclear, and the documentation result is ambiguous, request additional information: “WARNING: Please provide additional information to avoid confusion”. +- Utilize only the verified information from the schema to ensure accuracy. +- Descriptions should be factual, straightforward, and avoid any speculative language. +- Refrain from using the phrase “in the { table } table” within your descriptions. +- Ensure that the documentation adheres to standard schema formatting without modifying the underlying schema structure.

    +

    ### Formatting: +- Maintain consistency with the existing documentation style and structure. +- Focus on clarity and precision to aid developers and system architects in understanding the schema’s components effectively.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt(prompt: str | Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: DocQualityPrompt)[source]
    +

    Bases: SinglePrompt

    +
    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the base and optimized metrics.

    +
    +
    Parameters:
    +

    base_metrics – The base metrics. :type base_metrics: Any :param

    +
    +
    +

    optimized_metrics: The optimized metrics.

    +
    + +
    +
    +evaluate_documentation_quality(schema: Example, pred: Prediction, trace=None, scalar=True) int[source]
    +

    Evaluate the quality of the documentation. Utilizes the instantiated metric +type to evaluate the quality of the documentation.

    +
    +
    Parameters:
    +
      +
    • schema (dspy.Example) – The schema to evaluate the documentation for.

    • +
    • pred (dspy.Prediction) – The predicted documentation.

    • +
    • trace (Any) – The trace of the prediction.

    • +
    • scalar (bool) – Whether to return a squared score or the full evaluation object.

    • +
    +
    +
    Returns:
    +

    The squared score or the full evaluation object.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    + +
    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Format the metric results into a dictionary.

    +
    +
    Parameters:
    +

    examples – The examples used to evaluate the metric. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results of the metric. :type results: +List :param scores: The scores of the metric. :type scores: List

    +
    + +
    + +
    +
    +class graphdoc.prompts.schema_doc_generation.DocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate a precise description for the columns of the tables in the database.

    +

    ### Requirements: +- Focus solely on confirmed details from the provided schema. +- Keep the description concise and factual. +- Exclude any speculative or additional commentary. +- DO NOT return the phrase “in the { table } table” in your description.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +graphdoc.prompts.schema_doc_generation.doc_gen_factory(key: str | Signature | SignatureMeta) Signature | SignatureMeta[source]
    +

    Factory function to return the correct signature based on the key. Currently only +supports three signatures (zero_shot_doc_gen, doc_gen_helper, bad_doc_gen).

    +
    +
    Parameters:
    +

    key (Union[str, dspy.Signature]) – The key to return the signature for.

    +
    +
    Returns:
    +

    The signature for the given key.

    +
    +
    Return type:
    +

    Union[dspy.Signature, dspy.SignatureMeta]

    +
    +
    +
    + +
    +
    +

    graphdoc.prompts.schema_doc_quality module

    +
    +
    +class graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity.

    +
    +

    perfect (4) example: +type Domain @entity {

    +
    +

    “ The namehash (id) of the parent name. References the Domain entity that is the parent of the current domain. Type: Domain ” +parent: Domain

    +
    +

    }

    +
    +
      +
    • +
      almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement.

      almost perfect (3) example: +type Token @entity {

      +
      +

      “ Name of the token, mirrored from the smart contract ” +name: String!

      +
      +

      }

      +
      +
      +
    • +
    • +
      poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect.

      poor but correct (2) example: +type InterestRate @entity {

      +
      +

      “Description for column: id” +id: ID!

      +
      +

      }

      +
      +
      +
    • +
    • +
      incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present.

      incorrect (1) example: +type BridgeProtocol implements Protocol @entity {

      +
      +

      “ Social Security Number of the protocol’s main developer ” +id: Bytes!

      +
      +

      }

      +
      +
      +
    • +
    +

    Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    + +
    +
    +class graphdoc.prompts.schema_doc_quality.DocQualityPrompt(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating')[source]
    +

    Bases: SinglePrompt

    +
    +
    +__init__(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating') None[source]
    +

    Initialize the DocQualityPrompt. This is a single prompt that can be used to +evaluate the quality of the documentation for a given schema. This is a wrapper +around the SinglePrompt class that implements the abstract methods.

    +
    +
    Parameters:
    +

    prompt – The prompt to use. Can either be a string that maps to a defined

    +
    +
    +

    signature, as set in the doc_quality_factory, or a dspy.Signature. :type prompt: +Union[str, dspy.Signature] :param prompt_type: The type of prompt to use. :type +prompt_type: Union[Literal[“predict”, “chain_of_thought”], Callable] :param +prompt_metric: The metric to use. Can either be a string that maps to a defined +metric, as set in the doc_quality_factory, or a custom callable function. +Function must have the signature (example: dspy.Example, prediction: +dspy.Prediction) -> bool. :type prompt_metric: Union[Literal[“rating”, +“category”], Callable]

    +
    + +
    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Returns true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare.

    +
    + +
    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) bool[source]
    +

    Evaluate the metric for the given example and prediction.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: Used for DSPy. :type trace: Any +:return: The result of the evaluation. A boolean for if the metric is correct. +:rtype: bool

    +
    + +
    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Formats evaluation metrics into a structured report containing: +- Overall score across all categories +- Percentage correct per category +- Detailed results for each evaluation

    +
    +
    Parameters:
    +
      +
    • examples (List[dspy.Example]) – The examples to evaluate the metric on.

    • +
    • overall_score (float) – The overall score across all categories.

    • +
    • results (List) – The results of the evaluation.

    • +
    • scores (List) – The scores of the evaluation.

    • +
    +
    +
    Returns:
    +

    A dictionary containing the overall score, per category scores, and details. +{ “overall_score”: 0, “per_category_scores”: {}, “details”: [], “results”: [] }

    +
    +
    Return type:
    +

    Dict[str, Any]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.prompts.schema_doc_quality.DocQualitySignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. +- almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement. +- poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect. +- incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present. +Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    + +
    +
    +graphdoc.prompts.schema_doc_quality.doc_quality_factory(key: str | Signature | SignatureMeta) Signature | SignatureMeta[source]
    +

    Factory function to return the correct signature based on the key. Currently only +supports two signatures (doc_quality and doc_quality_demo).

    +
    +
    Parameters:
    +

    key (Union[str, dspy.Signature]) – The key to return the signature for.

    +
    +
    Returns:
    +

    The signature for the given key.

    +
    +
    +
    + +
    +
    +

    graphdoc.prompts.single_prompt module

    +
    +
    +class graphdoc.prompts.single_prompt.SinglePrompt(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any)[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any) None[source]
    +

    Initialize a single prompt.

    +
    +
    Parameters:
    +
      +
    • prompt (dspy.Signature) – The prompt to use.

    • +
    • prompt_type (Union[Literal["predict", "chain_of_thought"], Callable]) – The type of prompt to use. Can be “predict” or +“chain_of_thought”. Optionally, pass another dspy.Module.

    • +
    • prompt_metric (Any) – The metric to use. Marked as Any for flexibility (as +metrics can be other prompts).

    • +
    +
    +
    +
    + +
    +
    +abstract compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Return true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare the metrics +on. Determines which metric is used to compare the models. :type +comparison_value: str :return: True if the optimized model is better than the +base model, False otherwise. :rtype: bool

    +
    + +
    +
    +evaluate_evalset(examples: List[Example], num_threads: int = 1, display_progress: bool = True, display_table: bool = True) Dict[str, Any][source]
    +

    Take in a list of examples and evaluate the results.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the results on. :type examples:

    +
    +
    +

    List[dspy.Example] :param num_threads: The number of threads to use for +evaluation. :type num_threads: int :param display_progress: Whether to display +the progress of the evaluation. :type display_progress: bool :param +display_table: Whether to display the table of the evaluation. :type +display_table: bool :return: A dictionary containing the overall score, results, +and scores. :rtype: Dict[str, Any]

    +
    + +
    +
    +abstract evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +abstract format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    This takes the results from the evaluate_evalset and does any necessary +formatting, taking into account the metric type.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the metric on. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results from the evaluate_evalset. +:type results: List :param scores: The scores from the evaluate_evalset. :type +scores: List

    +
    + +
    + +
    +
    +

    Module contents

    +
    +
    +class graphdoc.prompts.BadDocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database.

    +

    ### Requirements: +- Every table, entity, enum, etc. must have at least one column with a description that is obviosly incorrect. +- The documentation must be incorrect and misleading. +- The documentation should be scattered, with only some columns having documentation.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.prompts.DocGeneratorHelperSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums.

    +

    ### Requirements: +- If the field is unclear, and the documentation result is ambiguous, request additional information: “WARNING: Please provide additional information to avoid confusion”. +- Utilize only the verified information from the schema to ensure accuracy. +- Descriptions should be factual, straightforward, and avoid any speculative language. +- Refrain from using the phrase “in the { table } table” within your descriptions. +- Ensure that the documentation adheres to standard schema formatting without modifying the underlying schema structure.

    +

    ### Formatting: +- Maintain consistency with the existing documentation style and structure. +- Focus on clarity and precision to aid developers and system architects in understanding the schema’s components effectively.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.prompts.DocGeneratorPrompt(prompt: str | Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: DocQualityPrompt)[source]
    +

    Bases: SinglePrompt

    +
    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the base and optimized metrics.

    +
    +
    Parameters:
    +

    base_metrics – The base metrics. :type base_metrics: Any :param

    +
    +
    +

    optimized_metrics: The optimized metrics.

    +
    + +
    +
    +evaluate_documentation_quality(schema: Example, pred: Prediction, trace=None, scalar=True) int[source]
    +

    Evaluate the quality of the documentation. Utilizes the instantiated metric +type to evaluate the quality of the documentation.

    +
    +
    Parameters:
    +
      +
    • schema (dspy.Example) – The schema to evaluate the documentation for.

    • +
    • pred (dspy.Prediction) – The predicted documentation.

    • +
    • trace (Any) – The trace of the prediction.

    • +
    • scalar (bool) – Whether to return a squared score or the full evaluation object.

    • +
    +
    +
    Returns:
    +

    The squared score or the full evaluation object.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    + +
    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Format the metric results into a dictionary.

    +
    +
    Parameters:
    +

    examples – The examples used to evaluate the metric. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results of the metric. :type results: +List :param scores: The scores of the metric. :type scores: List

    +
    + +
    + +
    +
    +class graphdoc.prompts.DocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate a precise description for the columns of the tables in the database.

    +

    ### Requirements: +- Focus solely on confirmed details from the provided schema. +- Keep the description concise and factual. +- Exclude any speculative or additional commentary. +- DO NOT return the phrase “in the { table } table” in your description.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.prompts.DocQualityDemonstrationSignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity.

    +
    +

    perfect (4) example: +type Domain @entity {

    +
    +

    “ The namehash (id) of the parent name. References the Domain entity that is the parent of the current domain. Type: Domain ” +parent: Domain

    +
    +

    }

    +
    +
      +
    • +
      almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement.

      almost perfect (3) example: +type Token @entity {

      +
      +

      “ Name of the token, mirrored from the smart contract ” +name: String!

      +
      +

      }

      +
      +
      +
    • +
    • +
      poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect.

      poor but correct (2) example: +type InterestRate @entity {

      +
      +

      “Description for column: id” +id: ID!

      +
      +

      }

      +
      +
      +
    • +
    • +
      incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present.

      incorrect (1) example: +type BridgeProtocol implements Protocol @entity {

      +
      +

      “ Social Security Number of the protocol’s main developer ” +id: Bytes!

      +
      +

      }

      +
      +
      +
    • +
    +

    Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    + +
    +
    +class graphdoc.prompts.DocQualityPrompt(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating')[source]
    +

    Bases: SinglePrompt

    +
    +
    +__init__(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating') None[source]
    +

    Initialize the DocQualityPrompt. This is a single prompt that can be used to +evaluate the quality of the documentation for a given schema. This is a wrapper +around the SinglePrompt class that implements the abstract methods.

    +
    +
    Parameters:
    +

    prompt – The prompt to use. Can either be a string that maps to a defined

    +
    +
    +

    signature, as set in the doc_quality_factory, or a dspy.Signature. :type prompt: +Union[str, dspy.Signature] :param prompt_type: The type of prompt to use. :type +prompt_type: Union[Literal[“predict”, “chain_of_thought”], Callable] :param +prompt_metric: The metric to use. Can either be a string that maps to a defined +metric, as set in the doc_quality_factory, or a custom callable function. +Function must have the signature (example: dspy.Example, prediction: +dspy.Prediction) -> bool. :type prompt_metric: Union[Literal[“rating”, +“category”], Callable]

    +
    + +
    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Returns true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare.

    +
    + +
    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) bool[source]
    +

    Evaluate the metric for the given example and prediction.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: Used for DSPy. :type trace: Any +:return: The result of the evaluation. A boolean for if the metric is correct. +:rtype: bool

    +
    + +
    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Formats evaluation metrics into a structured report containing: +- Overall score across all categories +- Percentage correct per category +- Detailed results for each evaluation

    +
    +
    Parameters:
    +
      +
    • examples (List[dspy.Example]) – The examples to evaluate the metric on.

    • +
    • overall_score (float) – The overall score across all categories.

    • +
    • results (List) – The results of the evaluation.

    • +
    • scores (List) – The scores of the evaluation.

    • +
    +
    +
    Returns:
    +

    A dictionary containing the overall score, per category scores, and details. +{ “overall_score”: 0, “per_category_scores”: {}, “details”: [], “results”: [] }

    +
    +
    Return type:
    +

    Dict[str, Any]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.prompts.DocQualitySignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. +- almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement. +- poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect. +- incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present. +Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    + +
    +
    +class graphdoc.prompts.PromptFactory[source]
    +

    Bases: object

    +
    +
    +static single_prompt(prompt: str | Signature | SignatureMeta, prompt_class: str, prompt_type: str, prompt_metric: str | DocQualityPrompt | SinglePrompt) SinglePrompt[source]
    +

    Returns an instance of the specified prompt class. Allows for the user to +pass in their own dspy signature.

    +
    +
    Parameters:
    +
      +
    • prompt – The prompt to use. :type prompt: Union[str, dspy.Signature]

    • +
    • prompt_class – The class of the prompt to use. :type prompt_class: str

    • +
    • prompt_type – The type of the prompt to use. :type prompt_type: str :param

    • +
    +
    +
    +

    prompt_metric: The metric to use for the prompt. :type prompt_metric: Union[str, +DocQualityPrompt, SinglePrompt] :return: An instance of the specified prompt +class. :rtype: SinglePrompt

    +
    + +
    + +
    +
    +class graphdoc.prompts.SinglePrompt(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any)[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any) None[source]
    +

    Initialize a single prompt.

    +
    +
    Parameters:
    +
      +
    • prompt (dspy.Signature) – The prompt to use.

    • +
    • prompt_type (Union[Literal["predict", "chain_of_thought"], Callable]) – The type of prompt to use. Can be “predict” or +“chain_of_thought”. Optionally, pass another dspy.Module.

    • +
    • prompt_metric (Any) – The metric to use. Marked as Any for flexibility (as +metrics can be other prompts).

    • +
    +
    +
    +
    + +
    +
    +abstract compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Return true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare the metrics +on. Determines which metric is used to compare the models. :type +comparison_value: str :return: True if the optimized model is better than the +base model, False otherwise. :rtype: bool

    +
    + +
    +
    +evaluate_evalset(examples: List[Example], num_threads: int = 1, display_progress: bool = True, display_table: bool = True) Dict[str, Any][source]
    +

    Take in a list of examples and evaluate the results.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the results on. :type examples:

    +
    +
    +

    List[dspy.Example] :param num_threads: The number of threads to use for +evaluation. :type num_threads: int :param display_progress: Whether to display +the progress of the evaluation. :type display_progress: bool :param +display_table: Whether to display the table of the evaluation. :type +display_table: bool :return: A dictionary containing the overall score, results, +and scores. :rtype: Dict[str, Any]

    +
    + +
    +
    +abstract evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +abstract format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    This takes the results from the evaluate_evalset and does any necessary +formatting, taking into account the metric type.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the metric on. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results from the evaluate_evalset. +:type results: List :param scores: The scores from the evaluate_evalset. :type +scores: List

    +
    + +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/graphdoc.train.html b/graphdoc/docs/_build/html/graphdoc.train.html new file mode 100644 index 0000000..8dff758 --- /dev/null +++ b/graphdoc/docs/_build/html/graphdoc.train.html @@ -0,0 +1,712 @@ + + + + + + + graphdoc.train package — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    graphdoc.train package

    +
    +

    Submodules

    +
    +
    +

    graphdoc.train.doc_generator_trainer module

    +
    +
    +class graphdoc.train.doc_generator_trainer.DocGeneratorTrainer(prompt: DocGeneratorPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: SinglePromptTrainer

    +
    +
    +__init__(prompt: DocGeneratorPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the DocGeneratorTrainer.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: DocGeneratorPrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set. :type trainset: +List[dspy.Example] :param evalset: The evaluation set. :type evalset: +List[dspy.Example]

    +
    + +
    +
    +_calculate_average_score(evaluation: dict) float[source]
    +

    Given a dictionary of evaluation results, calculate the average score.

    +
    +
    Parameters:
    +

    evaluation (Dict[str, Any]) – The evaluation results.

    +
    +
    Returns:
    +

    The average score.

    +
    +
    Return type:
    +

    float

    +
    +
    +
    + +
    +
    +evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +evaluation_metrics(base_evaluation: Dict[str, Any], optimized_evaluation: Dict[str, Any]) None[source]
    +

    Log evaluation metrics to mlflow.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Dict[str, Any] :param optimized_evaluation: The evaluation +metrics of the optimized model. :type optimized_evaluation: Dict[str, Any]

    +
    + +
    +
    +train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the document generator model.

    +
    +
    Parameters:
    +

    load_model_args – The arguments to load the model. :type load_model_args:

    +
    +
    +

    Optional[Dict[str, Any]] :param save_model: Whether to save the model. :type +save_model: bool :return: The trained model. :rtype: dspy.ChainOfThought

    +
    + +
    + +
    +
    +

    graphdoc.train.doc_quality_trainer module

    +
    +
    +class graphdoc.train.doc_quality_trainer.DocQualityTrainer(prompt: DocQualityPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: SinglePromptTrainer

    +
    +
    +__init__(prompt: DocQualityPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the DocQualityTrainer. This is the base class for implementing a +trainer for a DocQualityPrompt.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: DocQualityPrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set.

    +
    + +
    +
    +evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +evaluation_metrics(base_evaluation, optimized_evaluation)[source]
    +

    Log evaluation metrics to mlflow. We will log the overall scores and the per +category scores. Per category scores will be logged as a csv file.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the +optimized model. :type optimized_evaluation: Any

    +
    + +
    +
    +train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the model. If provided, we will load the model from mlflow. Otherwise, +we will use the provided DocQualityPrompt as the base model.

    +
    +
    Parameters:
    +
      +
    • load_model_args (Dict[str, Any]) – The arguments to load the model.

    • +
    • save_model (bool) – Whether to save the model.

    • +
    +
    +
    +
    + +
    + +
    +
    +

    graphdoc.train.optimizers module

    +
    +
    +graphdoc.train.optimizers.optimizer_class(optimizer_type: str, optimizer_kwargs: Dict[str, Any])[source]
    +
    + +
    +
    +graphdoc.train.optimizers.optimizer_compile(optimizer_type: str, optimizer_kwargs: Dict[str, Any])[source]
    +

    Compiles the optimizer given the optimizer type and optimizer kwargs.

    +

    Optimizer kwargs are optimizer specific, and must include a student field that maps +to a dspy.ChainOfThought, dspy.Predict, etc.

    +
    + +
    +
    +

    graphdoc.train.single_prompt_trainer module

    +
    +
    +class graphdoc.train.single_prompt_trainer.SinglePromptTrainer(prompt: SinglePrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: SinglePrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the SinglePromptTrainer. This is the base class for implementing a +trainer for a single prompt.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: SinglePrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set. :type trainset: +List[dspy.Example]

    +
    + +
    +
    +abstract evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +abstract evaluation_metrics(base_evaluation, optimized_evaluation)[source]
    +

    Log evaluation metrics to mlflow.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the +optimized model. :type optimized_evaluation: Any

    +
    + +
    +
    +abstract train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the model.

    +
    +
    Parameters:
    +
      +
    • load_model_args (Dict[str, Any]) – The arguments to load the model.

    • +
    • save_model (bool) – Whether to save the model.

    • +
    +
    +
    +
    + +
    + +
    +
    +

    Module contents

    +
    +
    +class graphdoc.train.DocGeneratorTrainer(prompt: DocGeneratorPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: SinglePromptTrainer

    +
    +
    +__init__(prompt: DocGeneratorPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the DocGeneratorTrainer.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: DocGeneratorPrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set. :type trainset: +List[dspy.Example] :param evalset: The evaluation set. :type evalset: +List[dspy.Example]

    +
    + +
    +
    +_calculate_average_score(evaluation: dict) float[source]
    +

    Given a dictionary of evaluation results, calculate the average score.

    +
    +
    Parameters:
    +

    evaluation (Dict[str, Any]) – The evaluation results.

    +
    +
    Returns:
    +

    The average score.

    +
    +
    Return type:
    +

    float

    +
    +
    +
    + +
    +
    +evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +evaluation_metrics(base_evaluation: Dict[str, Any], optimized_evaluation: Dict[str, Any]) None[source]
    +

    Log evaluation metrics to mlflow.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Dict[str, Any] :param optimized_evaluation: The evaluation +metrics of the optimized model. :type optimized_evaluation: Dict[str, Any]

    +
    + +
    +
    +train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the document generator model.

    +
    +
    Parameters:
    +

    load_model_args – The arguments to load the model. :type load_model_args:

    +
    +
    +

    Optional[Dict[str, Any]] :param save_model: Whether to save the model. :type +save_model: bool :return: The trained model. :rtype: dspy.ChainOfThought

    +
    + +
    + +
    +
    +class graphdoc.train.DocQualityTrainer(prompt: DocQualityPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: SinglePromptTrainer

    +
    +
    +__init__(prompt: DocQualityPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the DocQualityTrainer. This is the base class for implementing a +trainer for a DocQualityPrompt.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: DocQualityPrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set.

    +
    + +
    +
    +evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +evaluation_metrics(base_evaluation, optimized_evaluation)[source]
    +

    Log evaluation metrics to mlflow. We will log the overall scores and the per +category scores. Per category scores will be logged as a csv file.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the +optimized model. :type optimized_evaluation: Any

    +
    + +
    +
    +train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the model. If provided, we will load the model from mlflow. Otherwise, +we will use the provided DocQualityPrompt as the base model.

    +
    +
    Parameters:
    +
      +
    • load_model_args (Dict[str, Any]) – The arguments to load the model.

    • +
    • save_model (bool) – Whether to save the model.

    • +
    +
    +
    +
    + +
    + +
    +
    +class graphdoc.train.SinglePrompt(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any)[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any) None[source]
    +

    Initialize a single prompt.

    +
    +
    Parameters:
    +
      +
    • prompt (dspy.Signature) – The prompt to use.

    • +
    • prompt_type (Union[Literal["predict", "chain_of_thought"], Callable]) – The type of prompt to use. Can be “predict” or +“chain_of_thought”. Optionally, pass another dspy.Module.

    • +
    • prompt_metric (Any) – The metric to use. Marked as Any for flexibility (as +metrics can be other prompts).

    • +
    +
    +
    +
    + +
    +
    +abstract compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Return true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare the metrics +on. Determines which metric is used to compare the models. :type +comparison_value: str :return: True if the optimized model is better than the +base model, False otherwise. :rtype: bool

    +
    + +
    +
    +evaluate_evalset(examples: List[Example], num_threads: int = 1, display_progress: bool = True, display_table: bool = True) Dict[str, Any][source]
    +

    Take in a list of examples and evaluate the results.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the results on. :type examples:

    +
    +
    +

    List[dspy.Example] :param num_threads: The number of threads to use for +evaluation. :type num_threads: int :param display_progress: Whether to display +the progress of the evaluation. :type display_progress: bool :param +display_table: Whether to display the table of the evaluation. :type +display_table: bool :return: A dictionary containing the overall score, results, +and scores. :rtype: Dict[str, Any]

    +
    + +
    +
    +abstract evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +abstract format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    This takes the results from the evaluate_evalset and does any necessary +formatting, taking into account the metric type.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the metric on. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results from the evaluate_evalset. +:type results: List :param scores: The scores from the evaluate_evalset. :type +scores: List

    +
    + +
    + +
    +
    +class graphdoc.train.SinglePromptTrainer(prompt: SinglePrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: SinglePrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the SinglePromptTrainer. This is the base class for implementing a +trainer for a single prompt.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: SinglePrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set. :type trainset: +List[dspy.Example]

    +
    + +
    +
    +abstract evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +abstract evaluation_metrics(base_evaluation, optimized_evaluation)[source]
    +

    Log evaluation metrics to mlflow.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the +optimized model. :type optimized_evaluation: Any

    +
    + +
    +
    +abstract train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the model.

    +
    +
    Parameters:
    +
      +
    • load_model_args (Dict[str, Any]) – The arguments to load the model.

    • +
    • save_model (bool) – Whether to save the model.

    • +
    +
    +
    +
    + +
    + +
    +
    +class graphdoc.train.TrainerFactory[source]
    +

    Bases: object

    +
    +
    +static single_trainer(trainer_class: str, prompt: SinglePrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_tracking_uri: str, mlflow_model_name: str, mlflow_experiment_name: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Returns an instance of the specified trainer class.

    +
    + +
    + +
    +
    +graphdoc.train.optimizer_class(optimizer_type: str, optimizer_kwargs: Dict[str, Any])[source]
    +
    + +
    +
    +graphdoc.train.optimizer_compile(optimizer_type: str, optimizer_kwargs: Dict[str, Any])[source]
    +

    Compiles the optimizer given the optimizer type and optimizer kwargs.

    +

    Optimizer kwargs are optimizer specific, and must include a student field that maps +to a dspy.ChainOfThought, dspy.Predict, etc.

    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/index.html b/graphdoc/docs/_build/html/index.html index f114613..26f99c4 100644 --- a/graphdoc/docs/_build/html/index.html +++ b/graphdoc/docs/_build/html/index.html @@ -20,7 +20,8 @@ - + + @@ -45,12 +46,11 @@
  • @@ -82,7 +82,15 @@

    GraphDoc documentationmlflow-manager directory that can help you setup and manage a local MLflow server. Within the graphdoc directory, you will find a run.sh script that can help you get started with a majority of common workflows that you may want to run. Just reach open an issue, or submit a PR, if you have any questions or feedback. Thanks!

    +

    License: Apache License 2.0

    +

    Contents:

    +
    @@ -97,7 +105,9 @@

    Indices and tables + +


    diff --git a/graphdoc/docs/_build/html/modules.html b/graphdoc/docs/_build/html/modules.html new file mode 100644 index 0000000..04fa821 --- /dev/null +++ b/graphdoc/docs/_build/html/modules.html @@ -0,0 +1,419 @@ + + + + + + + graphdoc — GraphDoc 1.0 documentation + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    graphdoc

    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/graphdoc/docs/_build/html/objects.inv b/graphdoc/docs/_build/html/objects.inv index 918a0be201897b0f64a8d285e5c11ae47bdb6997..6244368cde5a4860b12e6e267fcddfc3a77db1a9 100644 GIT binary patch delta 3653 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 XAmmMI`-+e46H*6+Wj5yMHfIpGP!xKJ|b*iT;83 zuPBHZk-Q_yFh4+1_fbrMfHB1ZI^rajt=~tXIWZ@^$WTnfFiK5uG4*k5+Pw7yKRie!1=2xUIu2O2<1S>xv-yb_G)%MTH>IodOt zl#LopsOHC;HGebAa`VifDekI*-4Zelh&%D7#%I?3~%gq+8y!F(3+L{dccK+jRy!Zx>{knKsuGdy9w&se}a=Av2yDhS2 zx*8T@nP?ccXV_J_m;(zs3A7z}O2ba@DYU%+RCudyu^xy@B_zCh4uA{BHRfVopW`em zr+2WZY=4lI^?ohmT55sPVd@Hu%CcH57&}IzTy)qsmm=b6EG`n`$+4+Y_ccf?mRyw* zgUDb3)kb|K;D){h0VK8TIGl4!kwe8)4vQF_}}x~%Dbk!KUV8{ZW(?V?px7ojMP zI6}RixdahcP)JfDW?IS+5ko@nBgh?QK(KZMx^CfdJKET47z1H!$wi`)uMGq&<3O%! zVShr|$(guH7_6ZUsJW$CEC!5XURsh|LY*K8r-2$a@)*X-3Jv4QChi97bg<;T*{&?p zo%K!yR_c3-)jPJn?AIV(Ml~b5w}qF<Iy;&o;Ha?NUQ_s9*^;k_md)#rUi z4BhRkDo5GuZLQ+^;uAB1L^@=VpWDccZL)GoEadB>QxB_>sC)}HxD~qfL&@$bOE4cw zbg=w!*UWL}oH1;+C{NM;ZJpHfi25Ow`Ur$v&6Hf}w7>M>ge2Ofj&wKb3?u_~a={W`w*qj!>lUigT)BBSfD%lC>lQM}qa=;e zfc)p=Jop^r7ZN)UpPbWGRnGY;4}V8*#pIs}M4?)V>a9lOp>GsN>1$rEqAutvf27pm z5s%5ABN6K@He|<#(+yo?t_O~`rgry2wbfDhB5l^r31
    @@ -87,57 +90,137 @@

    Python Module Index

    - graphdoc + graphdoc + + + +     + graphdoc.config + + + +     + graphdoc.data + + + +     + graphdoc.data.dspy_data + + + +     + graphdoc.data.dspy_data.dspy_data_helper + + + +     + graphdoc.data.dspy_data.generation_data_helper + + + +     + graphdoc.data.dspy_data.quality_data_helper + + + +     + graphdoc.data.helper + + + +     + graphdoc.data.local + + + +     + graphdoc.data.mlflow_data + + + +     + graphdoc.data.mlflow_data.mlflow_data_helper + + + +     + graphdoc.data.parser + + + +     + graphdoc.data.schema + + + +     + graphdoc.eval + + + +     + graphdoc.eval.doc_generator_eval + + + +     + graphdoc.main + + + +     + graphdoc.modules     - graphdoc.data + graphdoc.modules.doc_generator_module     - graphdoc.data.helper + graphdoc.prompts     - graphdoc.data.local + graphdoc.prompts.schema_doc_generation     - graphdoc.data.parser + graphdoc.prompts.schema_doc_quality     - graphdoc.data.schema + graphdoc.prompts.single_prompt     - graphdoc.main + graphdoc.train     - graphdoc.prompts + graphdoc.train.doc_generator_trainer     - graphdoc.prompts.schema_doc_generation + graphdoc.train.doc_quality_trainer     - graphdoc.prompts.schema_doc_quality + graphdoc.train.optimizers     - graphdoc.prompts.single_prompt + graphdoc.train.single_prompt_trainer diff --git a/graphdoc/docs/_build/html/search.html b/graphdoc/docs/_build/html/search.html index 24af65a..32ba66e 100644 --- a/graphdoc/docs/_build/html/search.html +++ b/graphdoc/docs/_build/html/search.html @@ -47,8 +47,11 @@
    diff --git a/graphdoc/docs/_build/html/searchindex.js b/graphdoc/docs/_build/html/searchindex.js index fa911c2..f89bc74 100644 --- a/graphdoc/docs/_build/html/searchindex.js +++ b/graphdoc/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"GraphDoc documentation": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "Module contents": [[2, "module-graphdoc"], [3, "module-graphdoc.data"], [4, "module-graphdoc.prompts"]], "Submodules": [[2, "submodules"], [3, "submodules"], [4, "submodules"]], "Subpackages": [[2, "subpackages"]], "graphdoc": [[5, null]], "graphdoc package": [[2, null]], "graphdoc.data package": [[3, null]], "graphdoc.data.helper module": [[3, "module-graphdoc.data.helper"]], "graphdoc.data.local module": [[3, "module-graphdoc.data.local"]], "graphdoc.data.parser module": [[3, "module-graphdoc.data.parser"]], "graphdoc.data.schema module": [[3, "module-graphdoc.data.schema"]], "graphdoc.main module": [[2, "module-graphdoc.main"]], "graphdoc.prompts package": [[4, null]], "graphdoc.prompts.schema_doc_generation module": [[4, "module-graphdoc.prompts.schema_doc_generation"]], "graphdoc.prompts.schema_doc_quality module": [[4, "module-graphdoc.prompts.schema_doc_quality"]], "graphdoc.prompts.single_prompt module": [[4, "module-graphdoc.prompts.single_prompt"]]}, "docnames": ["index", "links", "source/graphdoc", "source/graphdoc.data", "source/graphdoc.prompts", "source/modules"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "links.rst", "source/graphdoc.rst", "source/graphdoc.data.rst", "source/graphdoc.prompts.rst", "source/modules.rst"], "indexentries": {"__init__() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.__init__", false]], "__init__() (graphdoc.prompts.schema_doc_quality.docqualityprompt method)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt.__init__", false]], "__init__() (graphdoc.prompts.single_prompt.singleprompt method)": [[4, "graphdoc.prompts.single_prompt.SinglePrompt.__init__", false]], "_check_node_type() (graphdoc.data.parser.parser static method)": [[3, "graphdoc.data.parser.Parser._check_node_type", false]], "_env_constructor() (in module graphdoc.data.helper)": [[3, "graphdoc.data.helper._env_constructor", false]], "_hf_schema_object_columns() (graphdoc.data.schema.schemaobject static method)": [[3, "graphdoc.data.schema.SchemaObject._hf_schema_object_columns", false]], "almost_perfect (graphdoc.data.schema.schemacategory attribute)": [[3, "graphdoc.data.schema.SchemaCategory.ALMOST_PERFECT", false]], "almost_perfect (graphdoc.data.schema.schemacategorypath attribute)": [[3, "graphdoc.data.schema.SchemaCategoryPath.ALMOST_PERFECT", false]], "baddocgeneratorsignature (class in graphdoc.prompts.schema_doc_generation)": [[4, "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature", false]], "blank (graphdoc.data.schema.schemacategory attribute)": [[3, "graphdoc.data.schema.SchemaCategory.BLANK", false]], "blank (graphdoc.data.schema.schemacategorypath attribute)": [[3, "graphdoc.data.schema.SchemaCategoryPath.BLANK", false]], "category (graphdoc.data.schema.schemaobject attribute)": [[3, "graphdoc.data.schema.SchemaObject.category", false]], "category (graphdoc.prompts.schema_doc_quality.docqualitydemonstrationsignature attribute)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature.category", false]], "category (graphdoc.prompts.schema_doc_quality.docqualitysignature attribute)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualitySignature.category", false]], "check_directory_path() (in module graphdoc.data.helper)": [[3, "graphdoc.data.helper.check_directory_path", false]], "check_file_path() (in module graphdoc.data.helper)": [[3, "graphdoc.data.helper.check_file_path", false]], "compare_metrics() (graphdoc.prompts.schema_doc_generation.docgeneratorprompt method)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt.compare_metrics", false]], "compare_metrics() (graphdoc.prompts.schema_doc_quality.docqualityprompt method)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt.compare_metrics", false]], "compare_metrics() (graphdoc.prompts.single_prompt.singleprompt method)": [[4, "graphdoc.prompts.single_prompt.SinglePrompt.compare_metrics", false]], "count_description_pattern_matching() (graphdoc.data.parser.parser static method)": [[3, "graphdoc.data.parser.Parser.count_description_pattern_matching", false]], "database_schema (graphdoc.prompts.schema_doc_generation.baddocgeneratorsignature attribute)": [[4, "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature.database_schema", false]], "database_schema (graphdoc.prompts.schema_doc_generation.docgeneratorhelpersignature attribute)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature.database_schema", false]], "database_schema (graphdoc.prompts.schema_doc_generation.docgeneratorsignature attribute)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature.database_schema", false]], "database_schema (graphdoc.prompts.schema_doc_quality.docqualitydemonstrationsignature attribute)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature.database_schema", false]], "database_schema (graphdoc.prompts.schema_doc_quality.docqualitysignature attribute)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualitySignature.database_schema", false]], "default_node_types (graphdoc.data.parser.parser attribute)": [[3, "graphdoc.data.parser.Parser.DEFAULT_NODE_TYPES", false]], "doc_gen_factory() (in module graphdoc.prompts.schema_doc_generation)": [[4, "graphdoc.prompts.schema_doc_generation.doc_gen_factory", false]], "doc_generator_eval_from_yaml() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.doc_generator_eval_from_yaml", false]], "doc_generator_module_from_dict() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.doc_generator_module_from_dict", false]], "doc_generator_module_from_yaml() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.doc_generator_module_from_yaml", false]], "doc_quality_factory() (in module graphdoc.prompts.schema_doc_quality)": [[4, "graphdoc.prompts.schema_doc_quality.doc_quality_factory", false]], "docgeneratorhelpersignature (class in graphdoc.prompts.schema_doc_generation)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature", false]], "docgeneratorprompt (class in graphdoc.prompts.schema_doc_generation)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt", false]], "docgeneratorsignature (class in graphdoc.prompts.schema_doc_generation)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature", false]], "docqualitydemonstrationsignature (class in graphdoc.prompts.schema_doc_quality)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature", false]], "docqualityprompt (class in graphdoc.prompts.schema_doc_quality)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt", false]], "docqualitysignature (class in graphdoc.prompts.schema_doc_quality)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualitySignature", false]], "documented_schema (graphdoc.prompts.schema_doc_generation.baddocgeneratorsignature attribute)": [[4, "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature.documented_schema", false]], "documented_schema (graphdoc.prompts.schema_doc_generation.docgeneratorhelpersignature attribute)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature.documented_schema", false]], "documented_schema (graphdoc.prompts.schema_doc_generation.docgeneratorsignature attribute)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature.documented_schema", false]], "enum_schema (graphdoc.data.schema.schematype attribute)": [[3, "graphdoc.data.schema.SchemaType.ENUM_SCHEMA", false]], "evaluate_documentation_quality() (graphdoc.prompts.schema_doc_generation.docgeneratorprompt method)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt.evaluate_documentation_quality", false]], "evaluate_evalset() (graphdoc.prompts.single_prompt.singleprompt method)": [[4, "graphdoc.prompts.single_prompt.SinglePrompt.evaluate_evalset", false]], "evaluate_metric() (graphdoc.prompts.schema_doc_generation.docgeneratorprompt method)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.prompts.schema_doc_quality.docqualityprompt method)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.prompts.single_prompt.singleprompt method)": [[4, "graphdoc.prompts.single_prompt.SinglePrompt.evaluate_metric", false]], "fill_empty_descriptions() (graphdoc.data.parser.parser static method)": [[3, "graphdoc.data.parser.Parser.fill_empty_descriptions", false]], "folder_of_folders_to_dataset() (graphdoc.data.local.localdatahelper method)": [[3, "graphdoc.data.local.LocalDataHelper.folder_of_folders_to_dataset", false]], "folder_to_dataset() (graphdoc.data.local.localdatahelper method)": [[3, "graphdoc.data.local.LocalDataHelper.folder_to_dataset", false]], "format_metric() (graphdoc.prompts.schema_doc_generation.docgeneratorprompt method)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt.format_metric", false]], "format_metric() (graphdoc.prompts.schema_doc_quality.docqualityprompt method)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt.format_metric", false]], "format_metric() (graphdoc.prompts.single_prompt.singleprompt method)": [[4, "graphdoc.prompts.single_prompt.SinglePrompt.format_metric", false]], "four (graphdoc.data.schema.schemarating attribute)": [[3, "graphdoc.data.schema.SchemaRating.FOUR", false]], "from_dict() (graphdoc.data.schema.schemaobject class method)": [[3, "graphdoc.data.schema.SchemaObject.from_dict", false]], "from_dict() (graphdoc.main.graphdoc class method)": [[2, "graphdoc.main.GraphDoc.from_dict", false]], "from_str() (graphdoc.data.schema.schemacategory class method)": [[3, "graphdoc.data.schema.SchemaCategory.from_str", false]], "from_str() (graphdoc.data.schema.schematype class method)": [[3, "graphdoc.data.schema.SchemaType.from_str", false]], "from_value() (graphdoc.data.schema.schemarating class method)": [[3, "graphdoc.data.schema.SchemaRating.from_value", false]], "from_yaml() (graphdoc.main.graphdoc class method)": [[2, "graphdoc.main.GraphDoc.from_yaml", false]], "full_schema (graphdoc.data.schema.schematype attribute)": [[3, "graphdoc.data.schema.SchemaType.FULL_SCHEMA", false]], "get_category() (graphdoc.data.schema.schemacategoryratingmapping static method)": [[3, "graphdoc.data.schema.SchemaCategoryRatingMapping.get_category", false]], "get_path() (graphdoc.data.schema.schemacategorypath class method)": [[3, "graphdoc.data.schema.SchemaCategoryPath.get_path", false]], "get_rating() (graphdoc.data.schema.schemacategoryratingmapping static method)": [[3, "graphdoc.data.schema.SchemaCategoryRatingMapping.get_rating", false]], "graphdoc": [[2, "module-graphdoc", false]], "graphdoc (class in graphdoc.main)": [[2, "graphdoc.main.GraphDoc", false]], "graphdoc.data": [[3, "module-graphdoc.data", false]], "graphdoc.data.helper": [[3, "module-graphdoc.data.helper", false]], "graphdoc.data.local": [[3, "module-graphdoc.data.local", false]], "graphdoc.data.parser": [[3, "module-graphdoc.data.parser", false]], "graphdoc.data.schema": [[3, "module-graphdoc.data.schema", false]], "graphdoc.main": [[2, "module-graphdoc.main", false]], "graphdoc.prompts": [[4, "module-graphdoc.prompts", false]], "graphdoc.prompts.schema_doc_generation": [[4, "module-graphdoc.prompts.schema_doc_generation", false]], "graphdoc.prompts.schema_doc_quality": [[4, "module-graphdoc.prompts.schema_doc_quality", false]], "graphdoc.prompts.single_prompt": [[4, "module-graphdoc.prompts.single_prompt", false]], "incorrect (graphdoc.data.schema.schemacategory attribute)": [[3, "graphdoc.data.schema.SchemaCategory.INCORRECT", false]], "incorrect (graphdoc.data.schema.schemacategorypath attribute)": [[3, "graphdoc.data.schema.SchemaCategoryPath.INCORRECT", false]], "key (graphdoc.data.schema.schemaobject attribute)": [[3, "graphdoc.data.schema.SchemaObject.key", false]], "load_yaml_config() (in module graphdoc.data.helper)": [[3, "graphdoc.data.helper.load_yaml_config", false]], "localdatahelper (class in graphdoc.data.local)": [[3, "graphdoc.data.local.LocalDataHelper", false]], "model_config (graphdoc.prompts.schema_doc_generation.baddocgeneratorsignature attribute)": [[4, "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature.model_config", false]], "model_config (graphdoc.prompts.schema_doc_generation.docgeneratorhelpersignature attribute)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature.model_config", false]], "model_config (graphdoc.prompts.schema_doc_generation.docgeneratorsignature attribute)": [[4, "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature.model_config", false]], "model_config (graphdoc.prompts.schema_doc_quality.docqualitydemonstrationsignature attribute)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature.model_config", false]], "model_config (graphdoc.prompts.schema_doc_quality.docqualitysignature attribute)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualitySignature.model_config", false]], "module": [[2, "module-graphdoc", false], [2, "module-graphdoc.main", false], [3, "module-graphdoc.data", false], [3, "module-graphdoc.data.helper", false], [3, "module-graphdoc.data.local", false], [3, "module-graphdoc.data.parser", false], [3, "module-graphdoc.data.schema", false], [4, "module-graphdoc.prompts", false], [4, "module-graphdoc.prompts.schema_doc_generation", false], [4, "module-graphdoc.prompts.schema_doc_quality", false], [4, "module-graphdoc.prompts.single_prompt", false]], "one (graphdoc.data.schema.schemarating attribute)": [[3, "graphdoc.data.schema.SchemaRating.ONE", false]], "parse_objects_from_full_schema_object() (graphdoc.data.parser.parser static method)": [[3, "graphdoc.data.parser.Parser.parse_objects_from_full_schema_object", false]], "parse_schema_from_file() (graphdoc.data.parser.parser static method)": [[3, "graphdoc.data.parser.Parser.parse_schema_from_file", false]], "parser (class in graphdoc.data.parser)": [[3, "graphdoc.data.parser.Parser", false]], "perfect (graphdoc.data.schema.schemacategory attribute)": [[3, "graphdoc.data.schema.SchemaCategory.PERFECT", false]], "perfect (graphdoc.data.schema.schemacategorypath attribute)": [[3, "graphdoc.data.schema.SchemaCategoryPath.PERFECT", false]], "poor_but_correct (graphdoc.data.schema.schemacategory attribute)": [[3, "graphdoc.data.schema.SchemaCategory.POOR_BUT_CORRECT", false]], "poor_but_correct (graphdoc.data.schema.schemacategorypath attribute)": [[3, "graphdoc.data.schema.SchemaCategoryPath.POOR_BUT_CORRECT", false]], "promptfactory (class in graphdoc.prompts)": [[4, "graphdoc.prompts.PromptFactory", false]], "rating (graphdoc.data.schema.schemaobject attribute)": [[3, "graphdoc.data.schema.SchemaObject.rating", false]], "rating (graphdoc.prompts.schema_doc_quality.docqualitydemonstrationsignature attribute)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature.rating", false]], "rating (graphdoc.prompts.schema_doc_quality.docqualitysignature attribute)": [[4, "graphdoc.prompts.schema_doc_quality.DocQualitySignature.rating", false]], "schema_ast (graphdoc.data.schema.schemaobject attribute)": [[3, "graphdoc.data.schema.SchemaObject.schema_ast", false]], "schema_equality_check() (graphdoc.data.parser.parser static method)": [[3, "graphdoc.data.parser.Parser.schema_equality_check", false]], "schema_name (graphdoc.data.schema.schemaobject attribute)": [[3, "graphdoc.data.schema.SchemaObject.schema_name", false]], "schema_object_from_file() (graphdoc.data.parser.parser static method)": [[3, "graphdoc.data.parser.Parser.schema_object_from_file", false]], "schema_objects_from_folder() (graphdoc.data.local.localdatahelper method)": [[3, "graphdoc.data.local.LocalDataHelper.schema_objects_from_folder", false]], "schema_objects_from_folder_of_folders() (graphdoc.data.local.localdatahelper method)": [[3, "graphdoc.data.local.LocalDataHelper.schema_objects_from_folder_of_folders", false]], "schema_objects_to_dataset() (in module graphdoc.data.schema)": [[3, "graphdoc.data.schema.schema_objects_to_dataset", false]], "schema_str (graphdoc.data.schema.schemaobject attribute)": [[3, "graphdoc.data.schema.SchemaObject.schema_str", false]], "schema_type (graphdoc.data.schema.schemaobject attribute)": [[3, "graphdoc.data.schema.SchemaObject.schema_type", false]], "schemacategory (class in graphdoc.data.schema)": [[3, "graphdoc.data.schema.SchemaCategory", false]], "schemacategorypath (class in graphdoc.data.schema)": [[3, "graphdoc.data.schema.SchemaCategoryPath", false]], "schemacategoryratingmapping (class in graphdoc.data.schema)": [[3, "graphdoc.data.schema.SchemaCategoryRatingMapping", false]], "schemaobject (class in graphdoc.data.schema)": [[3, "graphdoc.data.schema.SchemaObject", false]], "schemarating (class in graphdoc.data.schema)": [[3, "graphdoc.data.schema.SchemaRating", false]], "schematype (class in graphdoc.data.schema)": [[3, "graphdoc.data.schema.SchemaType", false]], "setup_logging() (in module graphdoc.data.helper)": [[3, "graphdoc.data.helper.setup_logging", false]], "single_prompt() (graphdoc.prompts.promptfactory static method)": [[4, "graphdoc.prompts.PromptFactory.single_prompt", false]], "single_prompt_from_dict() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.single_prompt_from_dict", false]], "single_prompt_from_yaml() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.single_prompt_from_yaml", false]], "single_trainer_from_dict() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.single_trainer_from_dict", false]], "single_trainer_from_yaml() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.single_trainer_from_yaml", false]], "singleprompt (class in graphdoc.prompts.single_prompt)": [[4, "graphdoc.prompts.single_prompt.SinglePrompt", false]], "split_trainset() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.split_trainset", false]], "table_schema (graphdoc.data.schema.schematype attribute)": [[3, "graphdoc.data.schema.SchemaType.TABLE_SCHEMA", false]], "three (graphdoc.data.schema.schemarating attribute)": [[3, "graphdoc.data.schema.SchemaRating.THREE", false]], "to_dataset() (graphdoc.data.schema.schemaobject method)": [[3, "graphdoc.data.schema.SchemaObject.to_dataset", false]], "to_dict() (graphdoc.data.schema.schemaobject method)": [[3, "graphdoc.data.schema.SchemaObject.to_dict", false]], "trainset_and_evalset_from_yaml() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.trainset_and_evalset_from_yaml", false]], "trainset_from_dict() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.trainset_from_dict", false]], "trainset_from_yaml() (graphdoc.main.graphdoc method)": [[2, "graphdoc.main.GraphDoc.trainset_from_yaml", false]], "two (graphdoc.data.schema.schemarating attribute)": [[3, "graphdoc.data.schema.SchemaRating.TWO", false]], "update_node_descriptions() (graphdoc.data.parser.parser static method)": [[3, "graphdoc.data.parser.Parser.update_node_descriptions", false]], "zero (graphdoc.data.schema.schemarating attribute)": [[3, "graphdoc.data.schema.SchemaRating.ZERO", false]]}, "objects": {"": [[2, 0, 0, "-", "graphdoc"]], "graphdoc": [[3, 0, 0, "-", "data"], [2, 0, 0, "-", "main"], [4, 0, 0, "-", "prompts"]], "graphdoc.data": [[3, 0, 0, "-", "helper"], [3, 0, 0, "-", "local"], [3, 0, 0, "-", "parser"], [3, 0, 0, "-", "schema"]], "graphdoc.data.helper": [[3, 1, 1, "", "_env_constructor"], [3, 1, 1, "", "check_directory_path"], [3, 1, 1, "", "check_file_path"], [3, 1, 1, "", "load_yaml_config"], [3, 1, 1, "", "setup_logging"]], "graphdoc.data.local": [[3, 2, 1, "", "LocalDataHelper"]], "graphdoc.data.local.LocalDataHelper": [[3, 3, 1, "", "folder_of_folders_to_dataset"], [3, 3, 1, "", "folder_to_dataset"], [3, 3, 1, "", "schema_objects_from_folder"], [3, 3, 1, "", "schema_objects_from_folder_of_folders"]], "graphdoc.data.parser": [[3, 2, 1, "", "Parser"]], "graphdoc.data.parser.Parser": [[3, 4, 1, "", "DEFAULT_NODE_TYPES"], [3, 3, 1, "", "_check_node_type"], [3, 3, 1, "", "count_description_pattern_matching"], [3, 3, 1, "", "fill_empty_descriptions"], [3, 3, 1, "", "parse_objects_from_full_schema_object"], [3, 3, 1, "", "parse_schema_from_file"], [3, 3, 1, "", "schema_equality_check"], [3, 3, 1, "", "schema_object_from_file"], [3, 3, 1, "", "update_node_descriptions"]], "graphdoc.data.schema": [[3, 2, 1, "", "SchemaCategory"], [3, 2, 1, "", "SchemaCategoryPath"], [3, 2, 1, "", "SchemaCategoryRatingMapping"], [3, 2, 1, "", "SchemaObject"], [3, 2, 1, "", "SchemaRating"], [3, 2, 1, "", "SchemaType"], [3, 1, 1, "", "schema_objects_to_dataset"]], "graphdoc.data.schema.SchemaCategory": [[3, 4, 1, "", "ALMOST_PERFECT"], [3, 4, 1, "", "BLANK"], [3, 4, 1, "", "INCORRECT"], [3, 4, 1, "", "PERFECT"], [3, 4, 1, "", "POOR_BUT_CORRECT"], [3, 3, 1, "", "from_str"]], "graphdoc.data.schema.SchemaCategoryPath": [[3, 4, 1, "", "ALMOST_PERFECT"], [3, 4, 1, "", "BLANK"], [3, 4, 1, "", "INCORRECT"], [3, 4, 1, "", "PERFECT"], [3, 4, 1, "", "POOR_BUT_CORRECT"], [3, 3, 1, "", "get_path"]], "graphdoc.data.schema.SchemaCategoryRatingMapping": [[3, 3, 1, "", "get_category"], [3, 3, 1, "", "get_rating"]], "graphdoc.data.schema.SchemaObject": [[3, 3, 1, "", "_hf_schema_object_columns"], [3, 4, 1, "", "category"], [3, 3, 1, "", "from_dict"], [3, 4, 1, "", "key"], [3, 4, 1, "", "rating"], [3, 4, 1, "", "schema_ast"], [3, 4, 1, "", "schema_name"], [3, 4, 1, "", "schema_str"], [3, 4, 1, "", "schema_type"], [3, 3, 1, "", "to_dataset"], [3, 3, 1, "", "to_dict"]], "graphdoc.data.schema.SchemaRating": [[3, 4, 1, "", "FOUR"], [3, 4, 1, "", "ONE"], [3, 4, 1, "", "THREE"], [3, 4, 1, "", "TWO"], [3, 4, 1, "", "ZERO"], [3, 3, 1, "", "from_value"]], "graphdoc.data.schema.SchemaType": [[3, 4, 1, "", "ENUM_SCHEMA"], [3, 4, 1, "", "FULL_SCHEMA"], [3, 4, 1, "", "TABLE_SCHEMA"], [3, 3, 1, "", "from_str"]], "graphdoc.main": [[2, 2, 1, "", "GraphDoc"]], "graphdoc.main.GraphDoc": [[2, 3, 1, "", "__init__"], [2, 3, 1, "", "doc_generator_eval_from_yaml"], [2, 3, 1, "", "doc_generator_module_from_dict"], [2, 3, 1, "", "doc_generator_module_from_yaml"], [2, 3, 1, "", "from_dict"], [2, 3, 1, "", "from_yaml"], [2, 3, 1, "", "single_prompt_from_dict"], [2, 3, 1, "", "single_prompt_from_yaml"], [2, 3, 1, "", "single_trainer_from_dict"], [2, 3, 1, "", "single_trainer_from_yaml"], [2, 3, 1, "", "split_trainset"], [2, 3, 1, "", "trainset_and_evalset_from_yaml"], [2, 3, 1, "", "trainset_from_dict"], [2, 3, 1, "", "trainset_from_yaml"]], "graphdoc.prompts": [[4, 2, 1, "", "PromptFactory"], [4, 0, 0, "-", "schema_doc_generation"], [4, 0, 0, "-", "schema_doc_quality"], [4, 0, 0, "-", "single_prompt"]], "graphdoc.prompts.PromptFactory": [[4, 3, 1, "", "single_prompt"]], "graphdoc.prompts.schema_doc_generation": [[4, 2, 1, "", "BadDocGeneratorSignature"], [4, 2, 1, "", "DocGeneratorHelperSignature"], [4, 2, 1, "", "DocGeneratorPrompt"], [4, 2, 1, "", "DocGeneratorSignature"], [4, 1, 1, "", "doc_gen_factory"]], "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature": [[4, 4, 1, "", "database_schema"], [4, 4, 1, "", "documented_schema"], [4, 4, 1, "", "model_config"]], "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature": [[4, 4, 1, "", "database_schema"], [4, 4, 1, "", "documented_schema"], [4, 4, 1, "", "model_config"]], "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt": [[4, 3, 1, "", "compare_metrics"], [4, 3, 1, "", "evaluate_documentation_quality"], [4, 3, 1, "", "evaluate_metric"], [4, 3, 1, "", "format_metric"]], "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature": [[4, 4, 1, "", "database_schema"], [4, 4, 1, "", "documented_schema"], [4, 4, 1, "", "model_config"]], "graphdoc.prompts.schema_doc_quality": [[4, 2, 1, "", "DocQualityDemonstrationSignature"], [4, 2, 1, "", "DocQualityPrompt"], [4, 2, 1, "", "DocQualitySignature"], [4, 1, 1, "", "doc_quality_factory"]], "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature": [[4, 4, 1, "", "category"], [4, 4, 1, "", "database_schema"], [4, 4, 1, "", "model_config"], [4, 4, 1, "", "rating"]], "graphdoc.prompts.schema_doc_quality.DocQualityPrompt": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "compare_metrics"], [4, 3, 1, "", "evaluate_metric"], [4, 3, 1, "", "format_metric"]], "graphdoc.prompts.schema_doc_quality.DocQualitySignature": [[4, 4, 1, "", "category"], [4, 4, 1, "", "database_schema"], [4, 4, 1, "", "model_config"], [4, 4, 1, "", "rating"]], "graphdoc.prompts.single_prompt": [[4, 2, 1, "", "SinglePrompt"]], "graphdoc.prompts.single_prompt.SinglePrompt": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "compare_metrics"], [4, 3, 1, "", "evaluate_evalset"], [4, 3, 1, "", "evaluate_metric"], [4, 3, 1, "", "format_metric"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "attribute", "Python attribute"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method", "4": "py:attribute"}, "terms": {"": 4, "0": [2, 3, 4], "1": [2, 3, 4], "10": 2, "1000": 2, "2": [2, 3, 4], "3": [2, 3, 4], "4": [2, 3, 4], "4o": 2, "5000": 2, "5001": 2, "A": [2, 3, 4], "At": 0, "If": [3, 4], "It": 0, "NOT": 4, "ONE": [2, 3], "The": [2, 3, 4], "__init__": [2, 4, 5], "_check_node_typ": [2, 3], "_env_constructor": [2, 3], "_hf_schema_object_column": [2, 3], "_local": 3, "abc": 4, "abov": 4, "abstract": 4, "access": 2, "account": 4, "accuraci": 4, "across": 4, "addit": 4, "adher": 4, "aid": 4, "all": [2, 3, 4], "allow": 4, "almost": [3, 4], "almost_perfect": [2, 3], "alreadi": 3, "also": [2, 3], "ambigu": 4, "an": [0, 2, 4], "analyz": 4, "ani": [0, 4], "anoth": [2, 4], "api": 2, "api_kei": 2, "applic": 3, "ar": [3, 4], "architect": 4, "argument": 2, "around": 4, "asset": 3, "ast": 3, "auto": 2, "automat": 4, "avail": 3, "avoid": 4, "bad_doc_gen": 4, "baddocgeneratorsignatur": [2, 4], "base": [2, 3, 4], "base_doc_gen": 2, "base_metr": 4, "better": 4, "blank": [2, 3], "bool": [3, 4], "boolean": 4, "boundari": 3, "bridgeprotocol": 4, "byte": 4, "cach": 2, "calcul": 2, "call": 2, "callabl": [3, 4], "can": [0, 2, 3, 4], "cannot": 3, "case": 2, "categori": [2, 3, 4], "categories_r": 3, "category_enum": 3, "chain_of_thought": [2, 4], "check": [2, 3], "check_directory_path": [2, 3], "check_file_path": [2, 3], "check_nod": 3, "child": 2, "children": 3, "clariti": 4, "class": [2, 3, 4], "classmethod": [2, 3], "classvar": 4, "code": 3, "column": [3, 4], "commentari": 4, "common": 0, "compar": 4, "compare_metr": [2, 4], "comparison_valu": 4, "complet": [2, 4], "compon": 4, "concis": 4, "config": 4, "config_dict": 2, "configdict": 4, "configur": [3, 4], "confirm": 4, "conform": 4, "confus": 4, "consist": 4, "construct": 3, "constructor": 3, "contain": [2, 3, 4], "content": 5, "contract": 4, "convert": 3, "correct": [3, 4], "correspond": [3, 4], "count": 3, "count_description_pattern_match": [2, 3], "coupl": 0, "creat": [2, 3], "critic": [2, 3], "current": 4, "custom": [3, 4], "data": [2, 5], "data_helper_typ": 2, "databas": 4, "database_schema": [2, 4], "dataset": [2, 3], "debug": [2, 3], "default": 3, "default_node_typ": [2, 3], "defin": [3, 4], "denver": 3, "describ": 4, "descript": [2, 3, 4], "detail": 4, "determin": 4, "develop": 4, "dict": [2, 3, 4], "dictionari": [2, 3, 4], "difficulti": 3, "directori": [0, 2, 3], "directory_path": 3, "displai": 4, "display_progress": 4, "display_t": 4, "do": [3, 4], "doc": 2, "doc_gen_factori": [2, 4], "doc_gen_help": 4, "doc_generator_eval_from_yaml": [2, 5], "doc_generator_module_from_dict": [2, 5], "doc_generator_module_from_yaml": [2, 5], "doc_qual": [2, 4], "doc_quality_demo": 4, "doc_quality_experi": 2, "doc_quality_factori": [2, 4], "doc_quality_model": 2, "docgeneratorevalu": 2, "docgeneratorhelpersignatur": [2, 4], "docgeneratormodul": 2, "docgeneratorprompt": [2, 4], "docgeneratorsignatur": [2, 4], "docqualitydemonstrationsignatur": [2, 4], "docqualityprompt": [2, 4], "docqualitysignatur": [2, 4], "docqualitytrain": 2, "document": [3, 4], "documented_schema": [2, 4], "documentnod": 3, "doe": [3, 4], "domain": 4, "dspy": [2, 4], "due": 4, "each": 4, "effect": 4, "either": 4, "empti": [2, 3], "enough": 4, "ensur": 4, "entiti": 4, "entri": 2, "enum": [2, 3, 4], "enum_schema": [2, 3], "enumtypedefinitionnod": 3, "enumvaluedefinitionnod": 3, "env": 2, "environ": 3, "equal": 3, "error": [2, 3], "etc": 4, "evalaut": 4, "evalset": 2, "evalset_ratio": 2, "evalu": [2, 4], "evaluate_documentation_qu": [2, 4], "evaluate_evalset": [2, 4], "evaluate_metr": [2, 4], "even": 4, "everi": 4, "exampl": [2, 4], "except": 3, "exclud": [3, 4], "exist": 4, "expect": 4, "face": [2, 3], "factori": 4, "factual": 4, "fail": 2, "fals": [2, 4], "featur": 3, "feedback": 0, "field": [3, 4], "file": [2, 3], "file_path": 3, "fill": [2, 3], "fill_empty_descript": [2, 3], "find": 0, "flexibl": 4, "float": [2, 4], "focu": 4, "folder": 3, "folder_of_folders_to_dataset": [2, 3], "folder_path": 3, "folder_to_dataset": [2, 3], "follow": 2, "format": [2, 4], "format_metr": [2, 4], "four": [2, 3], "free": 4, "from": [2, 3, 4], "from_dict": [2, 3, 5], "from_str": [2, 3], "from_valu": [2, 3], "from_yaml": [2, 5], "full": [3, 4], "full_schema": [2, 3], "function": [3, 4], "futur": 2, "gener": [0, 2, 4], "get": [0, 3], "get_categori": [2, 3], "get_path": [2, 3], "get_rat": [2, 3], "given": [0, 3, 4], "gold": 3, "gold_nod": 3, "gpt": 2, "graph": 3, "graph_doc": 3, "graphql": [0, 3, 4], "ha": 4, "hallucin": 4, "handl": 3, "have": [0, 3, 4], "help": 0, "helper": [2, 5], "hf_api_kei": 2, "hf_dataset_kei": 2, "http": 2, "hug": [2, 3], "i": [0, 2, 3, 4], "id": 4, "implement": 4, "improv": 4, "inaccur": 4, "incorrect": [2, 3, 4], "index": 0, "info": [2, 3], "inform": [2, 4], "initi": 4, "input_kei": 2, "instanc": 4, "instanti": 4, "int": [3, 4], "intention": 4, "interact": 0, "interestr": 4, "interpret": 4, "issu": 0, "its": [3, 4], "just": 0, "keep": [3, 4], "kei": [2, 3, 4], "languag": [2, 3, 4], "language_model": 2, "lead": 4, "least": 4, "level": [2, 3], "light": 2, "list": [2, 3, 4], "liter": [2, 3, 4], "llm": 4, "load": [2, 3], "load_from_hf": 2, "load_from_loc": 2, "load_from_mlflow": 2, "load_local_specific_categori": 2, "load_yaml_config": [2, 3], "loader": 3, "local": [0, 2, 5], "local_parse_object": 2, "local_specific_categori": 2, "localdatahelp": [2, 3], "localhost": 2, "log": [0, 2, 3], "log_level": [2, 3], "mai": [0, 2], "main": [4, 5], "maintain": 4, "major": 0, "make": 2, "manag": 0, "map": [2, 3, 4], "mark": 4, "match": 3, "max_bootstrapped_demo": 2, "max_labeled_demo": 2, "maximum": 2, "method": [3, 4], "metric": [2, 4], "minibatch": 2, "miprov2": 2, "mirror": 4, "mislead": 4, "miss": 4, "mlflow": [0, 2], "mlflow_experiment_nam": 2, "mlflow_model_nam": 2, "mlflow_tracking_uri": 2, "model": [2, 4], "model_arg": 2, "model_config": [2, 4], "model_nam": 2, "model_uri": 2, "model_vers": 2, "modifi": 4, "modul": [0, 5], "module_dict": 2, "mono": 3, "must": [2, 3, 4], "name": [2, 3, 4], "namehash": 4, "necessari": 4, "new": 3, "new_column_valu": 3, "new_table_valu": 3, "new_valu": 3, "node": 3, "none": [2, 3, 4], "null": 2, "num_thread": 4, "num_trial": 2, "number": [2, 3, 4], "object": [2, 3, 4], "objecttypedefinitionnod": 3, "obviosli": 4, "one": 4, "onli": [3, 4], "open": 0, "openai": 2, "openai_api_kei": 2, "optim": [2, 4], "optimized_metr": 4, "optimizer_typ": 2, "option": [2, 3, 4], "other": 4, "otherwis": 4, "out": 3, "output": 4, "overal": 4, "overall_scor": 4, "own": 4, "packag": 5, "page": 0, "paramet": [2, 3, 4], "parent": 4, "pars": [2, 3], "parse_object": 3, "parse_objects_from_full_schema_object": [2, 3], "parse_schema_from_fil": [2, 3], "parser": [2, 5], "pass": [3, 4], "path": [2, 3], "pathlib": 3, "pattern": 3, "per": 4, "per_category_scor": 4, "percentag": 4, "perfect": [2, 3, 4], "permiss": 2, "phrase": 4, "pleas": 4, "point": 2, "poor": [3, 4], "poor_but_correct": [2, 3], "posixpath": 3, "pr": 0, "precis": 4, "pred": 4, "predict": [2, 4], "present": 4, "program": 4, "progress": 4, "prompt": [2, 5], "prompt_class": 4, "prompt_dict": 2, "prompt_metr": [2, 4], "prompt_typ": 4, "promptfactori": [2, 4], "proper": 4, "proportion": 2, "protocol": 4, "provid": [3, 4], "public": 2, "pydant": 4, "qualiti": [2, 4], "qualnam": 3, "question": 0, "rais": 3, "rate": [2, 3, 4], "rating_enum": 3, "rating_threshold": 2, "reach": 0, "recurs": 3, "refer": [2, 4], "refrain": 4, "remov": 3, "report": 4, "represent": 3, "request": 4, "requir": 4, "resolv": 3, "result": 4, "retri": 2, "retry_limit": 2, "return": [2, 3, 4], "room": 4, "root": 0, "run": 0, "safeload": 3, "same": 2, "scalar": 4, "scalarnod": 3, "scatter": 4, "schema": [0, 2, 4, 5], "schema_ast": [2, 3], "schema_directory_path": 3, "schema_doc_gener": [2, 5], "schema_doc_qu": [2, 5], "schema_equality_check": [2, 3], "schema_fil": 3, "schema_nam": [2, 3], "schema_object": 3, "schema_object_from_fil": [2, 3], "schema_objects_from_fold": [2, 3], "schema_objects_from_folder_of_fold": [2, 3], "schema_objects_to_dataset": [2, 3], "schema_str": [2, 3], "schema_typ": [2, 3], "schemacategori": [2, 3], "schemacategorypath": [2, 3], "schemacategoryratingmap": [2, 3], "schemadocqualityprompt": 2, "schemaobject": [2, 3], "schemar": [2, 3], "schematyp": [2, 3], "score": 4, "script": 0, "search": 0, "section": 2, "secur": 4, "server": 0, "set": [3, 4], "setup": [0, 3], "setup_log": [2, 3], "sh": 0, "should": 4, "signatur": [2, 4], "signaturemeta": 4, "singl": [2, 4], "single_prompt": [2, 5], "single_prompt_from_dict": [2, 5], "single_prompt_from_yaml": [2, 5], "single_trainer_from_dict": [2, 5], "single_trainer_from_yaml": [2, 5], "singleprompt": [2, 4], "singleprompttrain": 2, "size": 2, "smart": 4, "so": 4, "social": 4, "sole": 4, "some": 4, "sourc": [2, 3, 4], "specif": 2, "specifi": 4, "specul": 4, "split": 2, "split_for_ev": 2, "split_trainset": [2, 5], "squar": 4, "standard": [3, 4], "start": [0, 3], "static": [3, 4], "str": [2, 3, 4], "straightforward": 4, "string": [2, 3, 4], "structur": [3, 4], "style": 4, "submit": 0, "submodul": 5, "subpackag": 5, "support": 4, "system": 4, "tabl": [3, 4], "table_schema": [2, 3], "tag": 3, "take": 4, "task": 4, "than": 4, "thank": 0, "thi": [2, 4], "thread": 4, "three": [2, 3, 4], "threshold": 2, "time": 3, "to_dataset": [2, 3], "to_dict": [2, 3], "todo": 2, "token": 4, "tool": 0, "total": 3, "trace": 4, "track": [0, 2], "trainer": 2, "trainer_dict": 2, "trainset": 2, "trainset_and_evalset_from_yaml": [2, 5], "trainset_dict": 2, "trainset_from_dict": [2, 5], "trainset_from_yaml": [2, 5], "trainset_s": 2, "travers": 3, "true": [2, 3, 4], "tupl": 2, "two": [2, 3, 4], "type": [2, 3, 4], "type_enum": 3, "type_map": 3, "unclear": 4, "underli": 4, "understand": 4, "union": [2, 3, 4], "updat": 3, "update_node_descript": [2, 3], "uri": 2, "us": [2, 3, 4], "use_env": 3, "use_value_nam": 3, "user": [3, 4], "util": 4, "valid": [2, 3], "valu": [3, 4], "value_nam": 3, "valueerror": 3, "variabl": 3, "verifi": 4, "version": 2, "want": 0, "warn": [2, 3, 4], "we": 2, "whether": [2, 3, 4], "which": [2, 4], "within": [0, 4], "without": [3, 4], "workflow": 0, "wrapper": 4, "yaml": [2, 3], "yaml_path": 2, "yet": 4, "you": [0, 4], "your": 4, "zero": [2, 3], "zero_shot_doc_gen": 4}, "titles": ["GraphDoc documentation", "<no title>", "graphdoc package", "graphdoc.data package", "graphdoc.prompts package", "graphdoc"], "titleterms": {"content": [2, 3, 4], "data": 3, "document": 0, "graphdoc": [0, 2, 3, 4, 5], "helper": 3, "indic": 0, "local": 3, "main": 2, "modul": [2, 3, 4], "packag": [2, 3, 4], "parser": 3, "prompt": 4, "schema": 3, "schema_doc_gener": 4, "schema_doc_qu": 4, "single_prompt": 4, "submodul": [2, 3, 4], "subpackag": 2, "tabl": 0}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Contents:": [[8, null]], "Examples": [[0, null], [11, null]], "GraphDoc documentation": [[8, null]], "Indices and tables": [[8, "indices-and-tables"]], "Module contents": [[0, "module-graphdoc"], [1, "module-graphdoc.data"], [2, "module-graphdoc.data.dspy_data"], [3, "module-graphdoc.data.mlflow_data"], [4, "module-graphdoc.eval"], [5, "module-graphdoc.modules"], [6, "module-graphdoc.prompts"], [7, "module-graphdoc.train"], [11, "module-graphdoc"], [12, "module-graphdoc.data"], [13, "module-graphdoc.prompts"]], "Submodules": [[0, "submodules"], [1, "submodules"], [2, "submodules"], [3, "submodules"], [4, "submodules"], [5, "submodules"], [6, "submodules"], [7, "submodules"], [11, "submodules"], [12, "submodules"], [13, "submodules"]], "Subpackages": [[0, "subpackages"], [1, "subpackages"], [11, "subpackages"]], "graphdoc": [[10, null], [14, null]], "graphdoc package": [[0, null], [11, null]], "graphdoc.config module": [[0, "module-graphdoc.config"]], "graphdoc.data package": [[1, null], [12, null]], "graphdoc.data.dspy_data package": [[2, null]], "graphdoc.data.dspy_data.dspy_data_helper module": [[2, "module-graphdoc.data.dspy_data.dspy_data_helper"]], "graphdoc.data.dspy_data.generation_data_helper module": [[2, "module-graphdoc.data.dspy_data.generation_data_helper"]], "graphdoc.data.dspy_data.quality_data_helper module": [[2, "module-graphdoc.data.dspy_data.quality_data_helper"]], "graphdoc.data.helper module": [[1, "module-graphdoc.data.helper"], [12, "module-graphdoc.data.helper"]], "graphdoc.data.local module": [[1, "module-graphdoc.data.local"], [12, "module-graphdoc.data.local"]], "graphdoc.data.mlflow_data package": [[3, null]], "graphdoc.data.mlflow_data.mlflow_data_helper module": [[3, "module-graphdoc.data.mlflow_data.mlflow_data_helper"]], "graphdoc.data.parser module": [[1, "module-graphdoc.data.parser"], [12, "module-graphdoc.data.parser"]], "graphdoc.data.schema module": [[1, "module-graphdoc.data.schema"], [12, "module-graphdoc.data.schema"]], "graphdoc.eval package": [[4, null]], "graphdoc.eval.doc_generator_eval module": [[4, "module-graphdoc.eval.doc_generator_eval"]], "graphdoc.main module": [[0, "module-graphdoc.main"], [11, "module-graphdoc.main"]], "graphdoc.modules package": [[5, null]], "graphdoc.modules.doc_generator_module module": [[5, "module-graphdoc.modules.doc_generator_module"]], "graphdoc.prompts package": [[6, null], [13, null]], "graphdoc.prompts.schema_doc_generation module": [[6, "module-graphdoc.prompts.schema_doc_generation"], [13, "module-graphdoc.prompts.schema_doc_generation"]], "graphdoc.prompts.schema_doc_quality module": [[6, "module-graphdoc.prompts.schema_doc_quality"], [13, "module-graphdoc.prompts.schema_doc_quality"]], "graphdoc.prompts.single_prompt module": [[6, "module-graphdoc.prompts.single_prompt"], [13, "module-graphdoc.prompts.single_prompt"]], "graphdoc.train package": [[7, null]], "graphdoc.train.doc_generator_trainer module": [[7, "module-graphdoc.train.doc_generator_trainer"]], "graphdoc.train.doc_quality_trainer module": [[7, "module-graphdoc.train.doc_quality_trainer"]], "graphdoc.train.optimizers module": [[7, "module-graphdoc.train.optimizers"]], "graphdoc.train.single_prompt_trainer module": [[7, "module-graphdoc.train.single_prompt_trainer"]]}, "docnames": ["graphdoc", "graphdoc.data", "graphdoc.data.dspy_data", "graphdoc.data.mlflow_data", "graphdoc.eval", "graphdoc.modules", "graphdoc.prompts", "graphdoc.train", "index", "links", "modules", "source/graphdoc", "source/graphdoc.data", "source/graphdoc.prompts", "source/modules"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["graphdoc.rst", "graphdoc.data.rst", "graphdoc.data.dspy_data.rst", "graphdoc.data.mlflow_data.rst", "graphdoc.eval.rst", "graphdoc.modules.rst", "graphdoc.prompts.rst", "graphdoc.train.rst", "index.rst", "links.rst", "modules.rst", "source/graphdoc.rst", "source/graphdoc.data.rst", "source/graphdoc.prompts.rst", "source/modules.rst"], "indexentries": {"_() (graphdoc.data.dspy_data.dspy_data_helper.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper._", false]], "_() (graphdoc.data.dspy_data.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.DspyDataHelper._", false]], "_() (graphdoc.data.dspydatahelper static method)": [[1, "graphdoc.data.DspyDataHelper._", false]], "_() (graphdoc.dspydatahelper static method)": [[0, "graphdoc.DspyDataHelper._", false]], "__init__() (graphdoc.data.mlflow_data.mlflow_data_helper.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper.__init__", false]], "__init__() (graphdoc.data.mlflow_data.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper.__init__", false]], "__init__() (graphdoc.data.mlflowdatahelper method)": [[1, "graphdoc.data.MlflowDataHelper.__init__", false]], "__init__() (graphdoc.docgeneratorevaluator method)": [[0, "graphdoc.DocGeneratorEvaluator.__init__", false]], "__init__() (graphdoc.docgeneratormodule method)": [[0, "graphdoc.DocGeneratorModule.__init__", false]], "__init__() (graphdoc.docgeneratortrainer method)": [[0, "graphdoc.DocGeneratorTrainer.__init__", false]], "__init__() (graphdoc.docqualityprompt method)": [[0, "graphdoc.DocQualityPrompt.__init__", false]], "__init__() (graphdoc.docqualitytrainer method)": [[0, "graphdoc.DocQualityTrainer.__init__", false]], "__init__() (graphdoc.eval.doc_generator_eval.docgeneratorevaluator method)": [[4, "graphdoc.eval.doc_generator_eval.DocGeneratorEvaluator.__init__", false]], "__init__() (graphdoc.eval.docgeneratorevaluator method)": [[4, "graphdoc.eval.DocGeneratorEvaluator.__init__", false]], "__init__() (graphdoc.mlflowdatahelper method)": [[0, "graphdoc.MlflowDataHelper.__init__", false]], "__init__() (graphdoc.modules.doc_generator_module.docgeneratormodule method)": [[5, "graphdoc.modules.doc_generator_module.DocGeneratorModule.__init__", false]], "__init__() (graphdoc.modules.docgeneratormodule method)": [[5, "graphdoc.modules.DocGeneratorModule.__init__", false]], "__init__() (graphdoc.prompts.docqualityprompt method)": [[6, "graphdoc.prompts.DocQualityPrompt.__init__", false]], "__init__() (graphdoc.prompts.schema_doc_quality.docqualityprompt method)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt.__init__", false]], "__init__() (graphdoc.prompts.single_prompt.singleprompt method)": [[6, "graphdoc.prompts.single_prompt.SinglePrompt.__init__", false]], "__init__() (graphdoc.prompts.singleprompt method)": [[6, "graphdoc.prompts.SinglePrompt.__init__", false]], "__init__() (graphdoc.singleprompt method)": [[0, "graphdoc.SinglePrompt.__init__", false]], "__init__() (graphdoc.singleprompttrainer method)": [[0, "graphdoc.SinglePromptTrainer.__init__", false]], "__init__() (graphdoc.train.doc_generator_trainer.docgeneratortrainer method)": [[7, "graphdoc.train.doc_generator_trainer.DocGeneratorTrainer.__init__", false]], "__init__() (graphdoc.train.doc_quality_trainer.docqualitytrainer method)": [[7, "graphdoc.train.doc_quality_trainer.DocQualityTrainer.__init__", false]], "__init__() (graphdoc.train.docgeneratortrainer method)": [[7, "graphdoc.train.DocGeneratorTrainer.__init__", false]], "__init__() (graphdoc.train.docqualitytrainer method)": [[7, "graphdoc.train.DocQualityTrainer.__init__", false]], "__init__() (graphdoc.train.single_prompt_trainer.singleprompttrainer method)": [[7, "graphdoc.train.single_prompt_trainer.SinglePromptTrainer.__init__", false]], "__init__() (graphdoc.train.singleprompt method)": [[7, "graphdoc.train.SinglePrompt.__init__", false]], "__init__() (graphdoc.train.singleprompttrainer method)": [[7, "graphdoc.train.SinglePromptTrainer.__init__", false]], "_calculate_average_score() (graphdoc.docgeneratortrainer method)": [[0, "graphdoc.DocGeneratorTrainer._calculate_average_score", false]], "_calculate_average_score() (graphdoc.train.doc_generator_trainer.docgeneratortrainer method)": [[7, "graphdoc.train.doc_generator_trainer.DocGeneratorTrainer._calculate_average_score", false]], "_calculate_average_score() (graphdoc.train.docgeneratortrainer method)": [[7, "graphdoc.train.DocGeneratorTrainer._calculate_average_score", false]], "_check_node_type() (graphdoc.data.parser static method)": [[1, "graphdoc.data.Parser._check_node_type", false]], "_check_node_type() (graphdoc.data.parser.parser static method)": [[1, "graphdoc.data.parser.Parser._check_node_type", false]], "_check_node_type() (graphdoc.parser static method)": [[0, "graphdoc.Parser._check_node_type", false]], "_env_constructor() (in module graphdoc)": [[0, "graphdoc._env_constructor", false]], "_env_constructor() (in module graphdoc.data)": [[1, "graphdoc.data._env_constructor", false]], "_env_constructor() (in module graphdoc.data.helper)": [[1, "graphdoc.data.helper._env_constructor", false]], "_hf_schema_object_columns() (graphdoc.data.schema.schemaobject static method)": [[1, "graphdoc.data.schema.SchemaObject._hf_schema_object_columns", false]], "_hf_schema_object_columns() (graphdoc.data.schemaobject static method)": [[1, "graphdoc.data.SchemaObject._hf_schema_object_columns", false]], "_hf_schema_object_columns() (graphdoc.schemaobject static method)": [[0, "graphdoc.SchemaObject._hf_schema_object_columns", false]], "_predict() (graphdoc.docgeneratormodule method)": [[0, "graphdoc.DocGeneratorModule._predict", false]], "_predict() (graphdoc.modules.doc_generator_module.docgeneratormodule method)": [[5, "graphdoc.modules.doc_generator_module.DocGeneratorModule._predict", false]], "_predict() (graphdoc.modules.docgeneratormodule method)": [[5, "graphdoc.modules.DocGeneratorModule._predict", false]], "_retry_by_rating() (graphdoc.docgeneratormodule method)": [[0, "graphdoc.DocGeneratorModule._retry_by_rating", false]], "_retry_by_rating() (graphdoc.modules.doc_generator_module.docgeneratormodule method)": [[5, "graphdoc.modules.doc_generator_module.DocGeneratorModule._retry_by_rating", false]], "_retry_by_rating() (graphdoc.modules.docgeneratormodule method)": [[5, "graphdoc.modules.DocGeneratorModule._retry_by_rating", false]], "almost_perfect (graphdoc.data.schema.schemacategory attribute)": [[1, "graphdoc.data.schema.SchemaCategory.ALMOST_PERFECT", false]], "almost_perfect (graphdoc.data.schema.schemacategorypath attribute)": [[1, "graphdoc.data.schema.SchemaCategoryPath.ALMOST_PERFECT", false]], "almost_perfect (graphdoc.data.schemacategory attribute)": [[1, "graphdoc.data.SchemaCategory.ALMOST_PERFECT", false]], "almost_perfect (graphdoc.data.schemacategorypath attribute)": [[1, "graphdoc.data.SchemaCategoryPath.ALMOST_PERFECT", false]], "almost_perfect (graphdoc.schemacategory attribute)": [[0, "graphdoc.SchemaCategory.ALMOST_PERFECT", false]], "almost_perfect (graphdoc.schemacategorypath attribute)": [[0, "graphdoc.SchemaCategoryPath.ALMOST_PERFECT", false]], "baddocgeneratorsignature (class in graphdoc)": [[0, "graphdoc.BadDocGeneratorSignature", false]], "baddocgeneratorsignature (class in graphdoc.prompts)": [[6, "graphdoc.prompts.BadDocGeneratorSignature", false]], "baddocgeneratorsignature (class in graphdoc.prompts.schema_doc_generation)": [[6, "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature", false]], "blank (graphdoc.data.schema.schemacategory attribute)": [[1, "graphdoc.data.schema.SchemaCategory.BLANK", false]], "blank (graphdoc.data.schema.schemacategorypath attribute)": [[1, "graphdoc.data.schema.SchemaCategoryPath.BLANK", false]], "blank (graphdoc.data.schemacategory attribute)": [[1, "graphdoc.data.SchemaCategory.BLANK", false]], "blank (graphdoc.data.schemacategorypath attribute)": [[1, "graphdoc.data.SchemaCategoryPath.BLANK", false]], "blank (graphdoc.schemacategory attribute)": [[0, "graphdoc.SchemaCategory.BLANK", false]], "blank (graphdoc.schemacategorypath attribute)": [[0, "graphdoc.SchemaCategoryPath.BLANK", false]], "category (graphdoc.data.schema.schemaobject attribute)": [[1, "graphdoc.data.schema.SchemaObject.category", false]], "category (graphdoc.data.schemaobject attribute)": [[1, "graphdoc.data.SchemaObject.category", false]], "category (graphdoc.docqualitydemonstrationsignature attribute)": [[0, "graphdoc.DocQualityDemonstrationSignature.category", false]], "category (graphdoc.docqualitysignature attribute)": [[0, "graphdoc.DocQualitySignature.category", false]], "category (graphdoc.prompts.docqualitydemonstrationsignature attribute)": [[6, "graphdoc.prompts.DocQualityDemonstrationSignature.category", false]], "category (graphdoc.prompts.docqualitysignature attribute)": [[6, "graphdoc.prompts.DocQualitySignature.category", false]], "category (graphdoc.prompts.schema_doc_quality.docqualitydemonstrationsignature attribute)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature.category", false]], "category (graphdoc.prompts.schema_doc_quality.docqualitysignature attribute)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualitySignature.category", false]], "category (graphdoc.schemaobject attribute)": [[0, "graphdoc.SchemaObject.category", false]], "check_directory_path() (in module graphdoc)": [[0, "graphdoc.check_directory_path", false]], "check_directory_path() (in module graphdoc.data)": [[1, "graphdoc.data.check_directory_path", false]], "check_directory_path() (in module graphdoc.data.helper)": [[1, "graphdoc.data.helper.check_directory_path", false]], "check_file_path() (in module graphdoc)": [[0, "graphdoc.check_file_path", false]], "check_file_path() (in module graphdoc.data)": [[1, "graphdoc.data.check_file_path", false]], "check_file_path() (in module graphdoc.data.helper)": [[1, "graphdoc.data.helper.check_file_path", false]], "compare_metrics() (graphdoc.docgeneratorprompt method)": [[0, "graphdoc.DocGeneratorPrompt.compare_metrics", false]], "compare_metrics() (graphdoc.docqualityprompt method)": [[0, "graphdoc.DocQualityPrompt.compare_metrics", false]], "compare_metrics() (graphdoc.prompts.docgeneratorprompt method)": [[6, "graphdoc.prompts.DocGeneratorPrompt.compare_metrics", false]], "compare_metrics() (graphdoc.prompts.docqualityprompt method)": [[6, "graphdoc.prompts.DocQualityPrompt.compare_metrics", false]], "compare_metrics() (graphdoc.prompts.schema_doc_generation.docgeneratorprompt method)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt.compare_metrics", false]], "compare_metrics() (graphdoc.prompts.schema_doc_quality.docqualityprompt method)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt.compare_metrics", false]], "compare_metrics() (graphdoc.prompts.single_prompt.singleprompt method)": [[6, "graphdoc.prompts.single_prompt.SinglePrompt.compare_metrics", false]], "compare_metrics() (graphdoc.prompts.singleprompt method)": [[6, "graphdoc.prompts.SinglePrompt.compare_metrics", false]], "compare_metrics() (graphdoc.singleprompt method)": [[0, "graphdoc.SinglePrompt.compare_metrics", false]], "compare_metrics() (graphdoc.train.singleprompt method)": [[7, "graphdoc.train.SinglePrompt.compare_metrics", false]], "count_description_pattern_matching() (graphdoc.data.parser static method)": [[1, "graphdoc.data.Parser.count_description_pattern_matching", false]], "count_description_pattern_matching() (graphdoc.data.parser.parser static method)": [[1, "graphdoc.data.parser.Parser.count_description_pattern_matching", false]], "count_description_pattern_matching() (graphdoc.parser static method)": [[0, "graphdoc.Parser.count_description_pattern_matching", false]], "database_schema (graphdoc.baddocgeneratorsignature attribute)": [[0, "graphdoc.BadDocGeneratorSignature.database_schema", false]], "database_schema (graphdoc.docgeneratorhelpersignature attribute)": [[0, "graphdoc.DocGeneratorHelperSignature.database_schema", false]], "database_schema (graphdoc.docgeneratorsignature attribute)": [[0, "graphdoc.DocGeneratorSignature.database_schema", false]], "database_schema (graphdoc.docqualitydemonstrationsignature attribute)": [[0, "graphdoc.DocQualityDemonstrationSignature.database_schema", false]], "database_schema (graphdoc.docqualitysignature attribute)": [[0, "graphdoc.DocQualitySignature.database_schema", false]], "database_schema (graphdoc.prompts.baddocgeneratorsignature attribute)": [[6, "graphdoc.prompts.BadDocGeneratorSignature.database_schema", false]], "database_schema (graphdoc.prompts.docgeneratorhelpersignature attribute)": [[6, "graphdoc.prompts.DocGeneratorHelperSignature.database_schema", false]], "database_schema (graphdoc.prompts.docgeneratorsignature attribute)": [[6, "graphdoc.prompts.DocGeneratorSignature.database_schema", false]], "database_schema (graphdoc.prompts.docqualitydemonstrationsignature attribute)": [[6, "graphdoc.prompts.DocQualityDemonstrationSignature.database_schema", false]], "database_schema (graphdoc.prompts.docqualitysignature attribute)": [[6, "graphdoc.prompts.DocQualitySignature.database_schema", false]], "database_schema (graphdoc.prompts.schema_doc_generation.baddocgeneratorsignature attribute)": [[6, "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature.database_schema", false]], "database_schema (graphdoc.prompts.schema_doc_generation.docgeneratorhelpersignature attribute)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature.database_schema", false]], "database_schema (graphdoc.prompts.schema_doc_generation.docgeneratorsignature attribute)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature.database_schema", false]], "database_schema (graphdoc.prompts.schema_doc_quality.docqualitydemonstrationsignature attribute)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature.database_schema", false]], "database_schema (graphdoc.prompts.schema_doc_quality.docqualitysignature attribute)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualitySignature.database_schema", false]], "default_node_types (graphdoc.data.parser attribute)": [[1, "graphdoc.data.Parser.DEFAULT_NODE_TYPES", false]], "default_node_types (graphdoc.data.parser.parser attribute)": [[1, "graphdoc.data.parser.Parser.DEFAULT_NODE_TYPES", false]], "default_node_types (graphdoc.parser attribute)": [[0, "graphdoc.Parser.DEFAULT_NODE_TYPES", false]], "doc_gen_factory() (in module graphdoc.prompts.schema_doc_generation)": [[6, "graphdoc.prompts.schema_doc_generation.doc_gen_factory", false]], "doc_generator_eval_from_yaml() (in module graphdoc)": [[0, "graphdoc.doc_generator_eval_from_yaml", false]], "doc_generator_eval_from_yaml() (in module graphdoc.config)": [[0, "graphdoc.config.doc_generator_eval_from_yaml", false]], "doc_generator_module_from_dict() (in module graphdoc)": [[0, "graphdoc.doc_generator_module_from_dict", false]], "doc_generator_module_from_dict() (in module graphdoc.config)": [[0, "graphdoc.config.doc_generator_module_from_dict", false]], "doc_generator_module_from_yaml() (in module graphdoc)": [[0, "graphdoc.doc_generator_module_from_yaml", false]], "doc_generator_module_from_yaml() (in module graphdoc.config)": [[0, "graphdoc.config.doc_generator_module_from_yaml", false]], "doc_quality_factory() (in module graphdoc.prompts.schema_doc_quality)": [[6, "graphdoc.prompts.schema_doc_quality.doc_quality_factory", false]], "docgeneratorevaluator (class in graphdoc)": [[0, "graphdoc.DocGeneratorEvaluator", false]], "docgeneratorevaluator (class in graphdoc.eval)": [[4, "graphdoc.eval.DocGeneratorEvaluator", false]], "docgeneratorevaluator (class in graphdoc.eval.doc_generator_eval)": [[4, "graphdoc.eval.doc_generator_eval.DocGeneratorEvaluator", false]], "docgeneratorhelpersignature (class in graphdoc)": [[0, "graphdoc.DocGeneratorHelperSignature", false]], "docgeneratorhelpersignature (class in graphdoc.prompts)": [[6, "graphdoc.prompts.DocGeneratorHelperSignature", false]], "docgeneratorhelpersignature (class in graphdoc.prompts.schema_doc_generation)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature", false]], "docgeneratormodule (class in graphdoc)": [[0, "graphdoc.DocGeneratorModule", false]], "docgeneratormodule (class in graphdoc.modules)": [[5, "graphdoc.modules.DocGeneratorModule", false]], "docgeneratormodule (class in graphdoc.modules.doc_generator_module)": [[5, "graphdoc.modules.doc_generator_module.DocGeneratorModule", false]], "docgeneratorprompt (class in graphdoc)": [[0, "graphdoc.DocGeneratorPrompt", false]], "docgeneratorprompt (class in graphdoc.prompts)": [[6, "graphdoc.prompts.DocGeneratorPrompt", false]], "docgeneratorprompt (class in graphdoc.prompts.schema_doc_generation)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt", false]], "docgeneratorsignature (class in graphdoc)": [[0, "graphdoc.DocGeneratorSignature", false]], "docgeneratorsignature (class in graphdoc.prompts)": [[6, "graphdoc.prompts.DocGeneratorSignature", false]], "docgeneratorsignature (class in graphdoc.prompts.schema_doc_generation)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature", false]], "docgeneratortrainer (class in graphdoc)": [[0, "graphdoc.DocGeneratorTrainer", false]], "docgeneratortrainer (class in graphdoc.train)": [[7, "graphdoc.train.DocGeneratorTrainer", false]], "docgeneratortrainer (class in graphdoc.train.doc_generator_trainer)": [[7, "graphdoc.train.doc_generator_trainer.DocGeneratorTrainer", false]], "docqualitydemonstrationsignature (class in graphdoc)": [[0, "graphdoc.DocQualityDemonstrationSignature", false]], "docqualitydemonstrationsignature (class in graphdoc.prompts)": [[6, "graphdoc.prompts.DocQualityDemonstrationSignature", false]], "docqualitydemonstrationsignature (class in graphdoc.prompts.schema_doc_quality)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature", false]], "docqualityprompt (class in graphdoc)": [[0, "graphdoc.DocQualityPrompt", false]], "docqualityprompt (class in graphdoc.prompts)": [[6, "graphdoc.prompts.DocQualityPrompt", false]], "docqualityprompt (class in graphdoc.prompts.schema_doc_quality)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt", false]], "docqualitysignature (class in graphdoc)": [[0, "graphdoc.DocQualitySignature", false]], "docqualitysignature (class in graphdoc.prompts)": [[6, "graphdoc.prompts.DocQualitySignature", false]], "docqualitysignature (class in graphdoc.prompts.schema_doc_quality)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualitySignature", false]], "docqualitytrainer (class in graphdoc)": [[0, "graphdoc.DocQualityTrainer", false]], "docqualitytrainer (class in graphdoc.train)": [[7, "graphdoc.train.DocQualityTrainer", false]], "docqualitytrainer (class in graphdoc.train.doc_quality_trainer)": [[7, "graphdoc.train.doc_quality_trainer.DocQualityTrainer", false]], "document_full_schema() (graphdoc.docgeneratormodule method)": [[0, "graphdoc.DocGeneratorModule.document_full_schema", false]], "document_full_schema() (graphdoc.modules.doc_generator_module.docgeneratormodule method)": [[5, "graphdoc.modules.doc_generator_module.DocGeneratorModule.document_full_schema", false]], "document_full_schema() (graphdoc.modules.docgeneratormodule method)": [[5, "graphdoc.modules.DocGeneratorModule.document_full_schema", false]], "documented_schema (graphdoc.baddocgeneratorsignature attribute)": [[0, "graphdoc.BadDocGeneratorSignature.documented_schema", false]], "documented_schema (graphdoc.docgeneratorhelpersignature attribute)": [[0, "graphdoc.DocGeneratorHelperSignature.documented_schema", false]], "documented_schema (graphdoc.docgeneratorsignature attribute)": [[0, "graphdoc.DocGeneratorSignature.documented_schema", false]], "documented_schema (graphdoc.prompts.baddocgeneratorsignature attribute)": [[6, "graphdoc.prompts.BadDocGeneratorSignature.documented_schema", false]], "documented_schema (graphdoc.prompts.docgeneratorhelpersignature attribute)": [[6, "graphdoc.prompts.DocGeneratorHelperSignature.documented_schema", false]], "documented_schema (graphdoc.prompts.docgeneratorsignature attribute)": [[6, "graphdoc.prompts.DocGeneratorSignature.documented_schema", false]], "documented_schema (graphdoc.prompts.schema_doc_generation.baddocgeneratorsignature attribute)": [[6, "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature.documented_schema", false]], "documented_schema (graphdoc.prompts.schema_doc_generation.docgeneratorhelpersignature attribute)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature.documented_schema", false]], "documented_schema (graphdoc.prompts.schema_doc_generation.docgeneratorsignature attribute)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature.documented_schema", false]], "dspydatahelper (class in graphdoc)": [[0, "graphdoc.DspyDataHelper", false]], "dspydatahelper (class in graphdoc.data)": [[1, "graphdoc.data.DspyDataHelper", false]], "dspydatahelper (class in graphdoc.data.dspy_data)": [[2, "graphdoc.data.dspy_data.DspyDataHelper", false]], "dspydatahelper (class in graphdoc.data.dspy_data.dspy_data_helper)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper", false]], "enum_schema (graphdoc.data.schema.schematype attribute)": [[1, "graphdoc.data.schema.SchemaType.ENUM_SCHEMA", false]], "enum_schema (graphdoc.data.schematype attribute)": [[1, "graphdoc.data.SchemaType.ENUM_SCHEMA", false]], "enum_schema (graphdoc.schematype attribute)": [[0, "graphdoc.SchemaType.ENUM_SCHEMA", false]], "evaluate() (graphdoc.docgeneratorevaluator method)": [[0, "graphdoc.DocGeneratorEvaluator.evaluate", false]], "evaluate() (graphdoc.eval.doc_generator_eval.docgeneratorevaluator method)": [[4, "graphdoc.eval.doc_generator_eval.DocGeneratorEvaluator.evaluate", false]], "evaluate() (graphdoc.eval.docgeneratorevaluator method)": [[4, "graphdoc.eval.DocGeneratorEvaluator.evaluate", false]], "evaluate_documentation_quality() (graphdoc.docgeneratorprompt method)": [[0, "graphdoc.DocGeneratorPrompt.evaluate_documentation_quality", false]], "evaluate_documentation_quality() (graphdoc.prompts.docgeneratorprompt method)": [[6, "graphdoc.prompts.DocGeneratorPrompt.evaluate_documentation_quality", false]], "evaluate_documentation_quality() (graphdoc.prompts.schema_doc_generation.docgeneratorprompt method)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt.evaluate_documentation_quality", false]], "evaluate_evalset() (graphdoc.prompts.single_prompt.singleprompt method)": [[6, "graphdoc.prompts.single_prompt.SinglePrompt.evaluate_evalset", false]], "evaluate_evalset() (graphdoc.prompts.singleprompt method)": [[6, "graphdoc.prompts.SinglePrompt.evaluate_evalset", false]], "evaluate_evalset() (graphdoc.singleprompt method)": [[0, "graphdoc.SinglePrompt.evaluate_evalset", false]], "evaluate_evalset() (graphdoc.train.singleprompt method)": [[7, "graphdoc.train.SinglePrompt.evaluate_evalset", false]], "evaluate_metric() (graphdoc.docgeneratorprompt method)": [[0, "graphdoc.DocGeneratorPrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.docqualityprompt method)": [[0, "graphdoc.DocQualityPrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.prompts.docgeneratorprompt method)": [[6, "graphdoc.prompts.DocGeneratorPrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.prompts.docqualityprompt method)": [[6, "graphdoc.prompts.DocQualityPrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.prompts.schema_doc_generation.docgeneratorprompt method)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.prompts.schema_doc_quality.docqualityprompt method)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.prompts.single_prompt.singleprompt method)": [[6, "graphdoc.prompts.single_prompt.SinglePrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.prompts.singleprompt method)": [[6, "graphdoc.prompts.SinglePrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.singleprompt method)": [[0, "graphdoc.SinglePrompt.evaluate_metric", false]], "evaluate_metric() (graphdoc.train.singleprompt method)": [[7, "graphdoc.train.SinglePrompt.evaluate_metric", false]], "evaluate_training() (graphdoc.docgeneratortrainer method)": [[0, "graphdoc.DocGeneratorTrainer.evaluate_training", false]], "evaluate_training() (graphdoc.docqualitytrainer method)": [[0, "graphdoc.DocQualityTrainer.evaluate_training", false]], "evaluate_training() (graphdoc.singleprompttrainer method)": [[0, "graphdoc.SinglePromptTrainer.evaluate_training", false]], "evaluate_training() (graphdoc.train.doc_generator_trainer.docgeneratortrainer method)": [[7, "graphdoc.train.doc_generator_trainer.DocGeneratorTrainer.evaluate_training", false]], "evaluate_training() (graphdoc.train.doc_quality_trainer.docqualitytrainer method)": [[7, "graphdoc.train.doc_quality_trainer.DocQualityTrainer.evaluate_training", false]], "evaluate_training() (graphdoc.train.docgeneratortrainer method)": [[7, "graphdoc.train.DocGeneratorTrainer.evaluate_training", false]], "evaluate_training() (graphdoc.train.docqualitytrainer method)": [[7, "graphdoc.train.DocQualityTrainer.evaluate_training", false]], "evaluate_training() (graphdoc.train.single_prompt_trainer.singleprompttrainer method)": [[7, "graphdoc.train.single_prompt_trainer.SinglePromptTrainer.evaluate_training", false]], "evaluate_training() (graphdoc.train.singleprompttrainer method)": [[7, "graphdoc.train.SinglePromptTrainer.evaluate_training", false]], "evaluation_metrics() (graphdoc.docgeneratortrainer method)": [[0, "graphdoc.DocGeneratorTrainer.evaluation_metrics", false]], "evaluation_metrics() (graphdoc.docqualitytrainer method)": [[0, "graphdoc.DocQualityTrainer.evaluation_metrics", false]], "evaluation_metrics() (graphdoc.singleprompttrainer method)": [[0, "graphdoc.SinglePromptTrainer.evaluation_metrics", false]], "evaluation_metrics() (graphdoc.train.doc_generator_trainer.docgeneratortrainer method)": [[7, "graphdoc.train.doc_generator_trainer.DocGeneratorTrainer.evaluation_metrics", false]], "evaluation_metrics() (graphdoc.train.doc_quality_trainer.docqualitytrainer method)": [[7, "graphdoc.train.doc_quality_trainer.DocQualityTrainer.evaluation_metrics", false]], "evaluation_metrics() (graphdoc.train.docgeneratortrainer method)": [[7, "graphdoc.train.DocGeneratorTrainer.evaluation_metrics", false]], "evaluation_metrics() (graphdoc.train.docqualitytrainer method)": [[7, "graphdoc.train.DocQualityTrainer.evaluation_metrics", false]], "evaluation_metrics() (graphdoc.train.single_prompt_trainer.singleprompttrainer method)": [[7, "graphdoc.train.single_prompt_trainer.SinglePromptTrainer.evaluation_metrics", false]], "evaluation_metrics() (graphdoc.train.singleprompttrainer method)": [[7, "graphdoc.train.SinglePromptTrainer.evaluation_metrics", false]], "example() (graphdoc.data.dspy_data.dspy_data_helper.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper.example", false]], "example() (graphdoc.data.dspy_data.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.DspyDataHelper.example", false]], "example() (graphdoc.data.dspy_data.generation_data_helper.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.generation_data_helper.GenerationDataHelper.example", false]], "example() (graphdoc.data.dspy_data.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.GenerationDataHelper.example", false]], "example() (graphdoc.data.dspy_data.quality_data_helper.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.quality_data_helper.QualityDataHelper.example", false]], "example() (graphdoc.data.dspy_data.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.QualityDataHelper.example", false]], "example() (graphdoc.data.dspydatahelper static method)": [[1, "graphdoc.data.DspyDataHelper.example", false]], "example() (graphdoc.data.generationdatahelper static method)": [[1, "graphdoc.data.GenerationDataHelper.example", false]], "example() (graphdoc.data.qualitydatahelper static method)": [[1, "graphdoc.data.QualityDataHelper.example", false]], "example() (graphdoc.dspydatahelper static method)": [[0, "graphdoc.DspyDataHelper.example", false]], "example() (graphdoc.generationdatahelper static method)": [[0, "graphdoc.GenerationDataHelper.example", false]], "example() (graphdoc.qualitydatahelper static method)": [[0, "graphdoc.QualityDataHelper.example", false]], "example_example() (graphdoc.data.dspy_data.dspy_data_helper.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper.example_example", false]], "example_example() (graphdoc.data.dspy_data.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.DspyDataHelper.example_example", false]], "example_example() (graphdoc.data.dspy_data.generation_data_helper.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.generation_data_helper.GenerationDataHelper.example_example", false]], "example_example() (graphdoc.data.dspy_data.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.GenerationDataHelper.example_example", false]], "example_example() (graphdoc.data.dspy_data.quality_data_helper.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.quality_data_helper.QualityDataHelper.example_example", false]], "example_example() (graphdoc.data.dspy_data.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.QualityDataHelper.example_example", false]], "example_example() (graphdoc.data.dspydatahelper static method)": [[1, "graphdoc.data.DspyDataHelper.example_example", false]], "example_example() (graphdoc.data.generationdatahelper static method)": [[1, "graphdoc.data.GenerationDataHelper.example_example", false]], "example_example() (graphdoc.data.qualitydatahelper static method)": [[1, "graphdoc.data.QualityDataHelper.example_example", false]], "example_example() (graphdoc.dspydatahelper static method)": [[0, "graphdoc.DspyDataHelper.example_example", false]], "example_example() (graphdoc.generationdatahelper static method)": [[0, "graphdoc.GenerationDataHelper.example_example", false]], "example_example() (graphdoc.qualitydatahelper static method)": [[0, "graphdoc.QualityDataHelper.example_example", false]], "fill_empty_descriptions() (graphdoc.data.parser static method)": [[1, "graphdoc.data.Parser.fill_empty_descriptions", false]], "fill_empty_descriptions() (graphdoc.data.parser.parser static method)": [[1, "graphdoc.data.parser.Parser.fill_empty_descriptions", false]], "fill_empty_descriptions() (graphdoc.parser static method)": [[0, "graphdoc.Parser.fill_empty_descriptions", false]], "folder_of_folders_to_dataset() (graphdoc.data.local.localdatahelper method)": [[1, "graphdoc.data.local.LocalDataHelper.folder_of_folders_to_dataset", false]], "folder_of_folders_to_dataset() (graphdoc.data.localdatahelper method)": [[1, "graphdoc.data.LocalDataHelper.folder_of_folders_to_dataset", false]], "folder_of_folders_to_dataset() (graphdoc.localdatahelper method)": [[0, "graphdoc.LocalDataHelper.folder_of_folders_to_dataset", false]], "folder_to_dataset() (graphdoc.data.local.localdatahelper method)": [[1, "graphdoc.data.local.LocalDataHelper.folder_to_dataset", false]], "folder_to_dataset() (graphdoc.data.localdatahelper method)": [[1, "graphdoc.data.LocalDataHelper.folder_to_dataset", false]], "folder_to_dataset() (graphdoc.localdatahelper method)": [[0, "graphdoc.LocalDataHelper.folder_to_dataset", false]], "format_metric() (graphdoc.docgeneratorprompt method)": [[0, "graphdoc.DocGeneratorPrompt.format_metric", false]], "format_metric() (graphdoc.docqualityprompt method)": [[0, "graphdoc.DocQualityPrompt.format_metric", false]], "format_metric() (graphdoc.prompts.docgeneratorprompt method)": [[6, "graphdoc.prompts.DocGeneratorPrompt.format_metric", false]], "format_metric() (graphdoc.prompts.docqualityprompt method)": [[6, "graphdoc.prompts.DocQualityPrompt.format_metric", false]], "format_metric() (graphdoc.prompts.schema_doc_generation.docgeneratorprompt method)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt.format_metric", false]], "format_metric() (graphdoc.prompts.schema_doc_quality.docqualityprompt method)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityPrompt.format_metric", false]], "format_metric() (graphdoc.prompts.single_prompt.singleprompt method)": [[6, "graphdoc.prompts.single_prompt.SinglePrompt.format_metric", false]], "format_metric() (graphdoc.prompts.singleprompt method)": [[6, "graphdoc.prompts.SinglePrompt.format_metric", false]], "format_metric() (graphdoc.singleprompt method)": [[0, "graphdoc.SinglePrompt.format_metric", false]], "format_metric() (graphdoc.train.singleprompt method)": [[7, "graphdoc.train.SinglePrompt.format_metric", false]], "formatted_signature() (graphdoc.data.dspy_data.dspy_data_helper.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper.formatted_signature", false]], "formatted_signature() (graphdoc.data.dspy_data.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.DspyDataHelper.formatted_signature", false]], "formatted_signature() (graphdoc.data.dspydatahelper static method)": [[1, "graphdoc.data.DspyDataHelper.formatted_signature", false]], "formatted_signature() (graphdoc.dspydatahelper static method)": [[0, "graphdoc.DspyDataHelper.formatted_signature", false]], "forward() (graphdoc.docgeneratorevaluator method)": [[0, "graphdoc.DocGeneratorEvaluator.forward", false]], "forward() (graphdoc.docgeneratormodule method)": [[0, "graphdoc.DocGeneratorModule.forward", false]], "forward() (graphdoc.eval.doc_generator_eval.docgeneratorevaluator method)": [[4, "graphdoc.eval.doc_generator_eval.DocGeneratorEvaluator.forward", false]], "forward() (graphdoc.eval.docgeneratorevaluator method)": [[4, "graphdoc.eval.DocGeneratorEvaluator.forward", false]], "forward() (graphdoc.modules.doc_generator_module.docgeneratormodule method)": [[5, "graphdoc.modules.doc_generator_module.DocGeneratorModule.forward", false]], "forward() (graphdoc.modules.docgeneratormodule method)": [[5, "graphdoc.modules.DocGeneratorModule.forward", false]], "four (graphdoc.data.schema.schemarating attribute)": [[1, "graphdoc.data.schema.SchemaRating.FOUR", false]], "four (graphdoc.data.schemarating attribute)": [[1, "graphdoc.data.SchemaRating.FOUR", false]], "four (graphdoc.schemarating attribute)": [[0, "graphdoc.SchemaRating.FOUR", false]], "from_dict() (graphdoc.data.schema.schemaobject class method)": [[1, "graphdoc.data.schema.SchemaObject.from_dict", false]], "from_dict() (graphdoc.data.schemaobject class method)": [[1, "graphdoc.data.SchemaObject.from_dict", false]], "from_dict() (graphdoc.schemaobject class method)": [[0, "graphdoc.SchemaObject.from_dict", false]], "from_str() (graphdoc.data.schema.schemacategory class method)": [[1, "graphdoc.data.schema.SchemaCategory.from_str", false]], "from_str() (graphdoc.data.schema.schematype class method)": [[1, "graphdoc.data.schema.SchemaType.from_str", false]], "from_str() (graphdoc.data.schemacategory class method)": [[1, "graphdoc.data.SchemaCategory.from_str", false]], "from_str() (graphdoc.data.schematype class method)": [[1, "graphdoc.data.SchemaType.from_str", false]], "from_str() (graphdoc.schemacategory class method)": [[0, "graphdoc.SchemaCategory.from_str", false]], "from_str() (graphdoc.schematype class method)": [[0, "graphdoc.SchemaType.from_str", false]], "from_value() (graphdoc.data.schema.schemarating class method)": [[1, "graphdoc.data.schema.SchemaRating.from_value", false]], "from_value() (graphdoc.data.schemarating class method)": [[1, "graphdoc.data.SchemaRating.from_value", false]], "from_value() (graphdoc.schemarating class method)": [[0, "graphdoc.SchemaRating.from_value", false]], "full_schema (graphdoc.data.schema.schematype attribute)": [[1, "graphdoc.data.schema.SchemaType.FULL_SCHEMA", false]], "full_schema (graphdoc.data.schematype attribute)": [[1, "graphdoc.data.SchemaType.FULL_SCHEMA", false]], "full_schema (graphdoc.schematype attribute)": [[0, "graphdoc.SchemaType.FULL_SCHEMA", false]], "generationdatahelper (class in graphdoc)": [[0, "graphdoc.GenerationDataHelper", false]], "generationdatahelper (class in graphdoc.data)": [[1, "graphdoc.data.GenerationDataHelper", false]], "generationdatahelper (class in graphdoc.data.dspy_data)": [[2, "graphdoc.data.dspy_data.GenerationDataHelper", false]], "generationdatahelper (class in graphdoc.data.dspy_data.generation_data_helper)": [[2, "graphdoc.data.dspy_data.generation_data_helper.GenerationDataHelper", false]], "get_category() (graphdoc.data.schema.schemacategoryratingmapping static method)": [[1, "graphdoc.data.schema.SchemaCategoryRatingMapping.get_category", false]], "get_category() (graphdoc.data.schemacategoryratingmapping static method)": [[1, "graphdoc.data.SchemaCategoryRatingMapping.get_category", false]], "get_category() (graphdoc.schemacategoryratingmapping static method)": [[0, "graphdoc.SchemaCategoryRatingMapping.get_category", false]], "get_path() (graphdoc.data.schema.schemacategorypath class method)": [[1, "graphdoc.data.schema.SchemaCategoryPath.get_path", false]], "get_path() (graphdoc.data.schemacategorypath class method)": [[1, "graphdoc.data.SchemaCategoryPath.get_path", false]], "get_path() (graphdoc.schemacategorypath class method)": [[0, "graphdoc.SchemaCategoryPath.get_path", false]], "get_rating() (graphdoc.data.schema.schemacategoryratingmapping static method)": [[1, "graphdoc.data.schema.SchemaCategoryRatingMapping.get_rating", false]], "get_rating() (graphdoc.data.schemacategoryratingmapping static method)": [[1, "graphdoc.data.SchemaCategoryRatingMapping.get_rating", false]], "get_rating() (graphdoc.schemacategoryratingmapping static method)": [[0, "graphdoc.SchemaCategoryRatingMapping.get_rating", false]], "graphdoc": [[0, "module-graphdoc", false]], "graphdoc.config": [[0, "module-graphdoc.config", false]], "graphdoc.data": [[1, "module-graphdoc.data", false]], "graphdoc.data.dspy_data": [[2, "module-graphdoc.data.dspy_data", false]], "graphdoc.data.dspy_data.dspy_data_helper": [[2, "module-graphdoc.data.dspy_data.dspy_data_helper", false]], "graphdoc.data.dspy_data.generation_data_helper": [[2, "module-graphdoc.data.dspy_data.generation_data_helper", false]], "graphdoc.data.dspy_data.quality_data_helper": [[2, "module-graphdoc.data.dspy_data.quality_data_helper", false]], "graphdoc.data.helper": [[1, "module-graphdoc.data.helper", false]], "graphdoc.data.local": [[1, "module-graphdoc.data.local", false]], "graphdoc.data.mlflow_data": [[3, "module-graphdoc.data.mlflow_data", false]], "graphdoc.data.mlflow_data.mlflow_data_helper": [[3, "module-graphdoc.data.mlflow_data.mlflow_data_helper", false]], "graphdoc.data.parser": [[1, "module-graphdoc.data.parser", false]], "graphdoc.data.schema": [[1, "module-graphdoc.data.schema", false]], "graphdoc.eval": [[4, "module-graphdoc.eval", false]], "graphdoc.eval.doc_generator_eval": [[4, "module-graphdoc.eval.doc_generator_eval", false]], "graphdoc.main": [[0, "module-graphdoc.main", false]], "graphdoc.modules": [[5, "module-graphdoc.modules", false]], "graphdoc.modules.doc_generator_module": [[5, "module-graphdoc.modules.doc_generator_module", false]], "graphdoc.prompts": [[6, "module-graphdoc.prompts", false]], "graphdoc.prompts.schema_doc_generation": [[6, "module-graphdoc.prompts.schema_doc_generation", false]], "graphdoc.prompts.schema_doc_quality": [[6, "module-graphdoc.prompts.schema_doc_quality", false]], "graphdoc.prompts.single_prompt": [[6, "module-graphdoc.prompts.single_prompt", false]], "graphdoc.train": [[7, "module-graphdoc.train", false]], "graphdoc.train.doc_generator_trainer": [[7, "module-graphdoc.train.doc_generator_trainer", false]], "graphdoc.train.doc_quality_trainer": [[7, "module-graphdoc.train.doc_quality_trainer", false]], "graphdoc.train.optimizers": [[7, "module-graphdoc.train.optimizers", false]], "graphdoc.train.single_prompt_trainer": [[7, "module-graphdoc.train.single_prompt_trainer", false]], "incorrect (graphdoc.data.schema.schemacategory attribute)": [[1, "graphdoc.data.schema.SchemaCategory.INCORRECT", false]], "incorrect (graphdoc.data.schema.schemacategorypath attribute)": [[1, "graphdoc.data.schema.SchemaCategoryPath.INCORRECT", false]], "incorrect (graphdoc.data.schemacategory attribute)": [[1, "graphdoc.data.SchemaCategory.INCORRECT", false]], "incorrect (graphdoc.data.schemacategorypath attribute)": [[1, "graphdoc.data.SchemaCategoryPath.INCORRECT", false]], "incorrect (graphdoc.schemacategory attribute)": [[0, "graphdoc.SchemaCategory.INCORRECT", false]], "incorrect (graphdoc.schemacategorypath attribute)": [[0, "graphdoc.SchemaCategoryPath.INCORRECT", false]], "key (graphdoc.data.schema.schemaobject attribute)": [[1, "graphdoc.data.schema.SchemaObject.key", false]], "key (graphdoc.data.schemaobject attribute)": [[1, "graphdoc.data.SchemaObject.key", false]], "key (graphdoc.schemaobject attribute)": [[0, "graphdoc.SchemaObject.key", false]], "latest_model_version() (graphdoc.data.mlflow_data.mlflow_data_helper.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper.latest_model_version", false]], "latest_model_version() (graphdoc.data.mlflow_data.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper.latest_model_version", false]], "latest_model_version() (graphdoc.data.mlflowdatahelper method)": [[1, "graphdoc.data.MlflowDataHelper.latest_model_version", false]], "latest_model_version() (graphdoc.mlflowdatahelper method)": [[0, "graphdoc.MlflowDataHelper.latest_model_version", false]], "load_yaml_config() (in module graphdoc)": [[0, "graphdoc.load_yaml_config", false]], "load_yaml_config() (in module graphdoc.data)": [[1, "graphdoc.data.load_yaml_config", false]], "load_yaml_config() (in module graphdoc.data.helper)": [[1, "graphdoc.data.helper.load_yaml_config", false]], "localdatahelper (class in graphdoc)": [[0, "graphdoc.LocalDataHelper", false]], "localdatahelper (class in graphdoc.data)": [[1, "graphdoc.data.LocalDataHelper", false]], "localdatahelper (class in graphdoc.data.local)": [[1, "graphdoc.data.local.LocalDataHelper", false]], "log (in module graphdoc.main)": [[0, "graphdoc.main.log", false]], "mlflow_data_helper_from_dict() (in module graphdoc)": [[0, "graphdoc.mlflow_data_helper_from_dict", false]], "mlflow_data_helper_from_dict() (in module graphdoc.config)": [[0, "graphdoc.config.mlflow_data_helper_from_dict", false]], "mlflow_data_helper_from_yaml() (in module graphdoc)": [[0, "graphdoc.mlflow_data_helper_from_yaml", false]], "mlflow_data_helper_from_yaml() (in module graphdoc.config)": [[0, "graphdoc.config.mlflow_data_helper_from_yaml", false]], "mlflowdatahelper (class in graphdoc)": [[0, "graphdoc.MlflowDataHelper", false]], "mlflowdatahelper (class in graphdoc.data)": [[1, "graphdoc.data.MlflowDataHelper", false]], "mlflowdatahelper (class in graphdoc.data.mlflow_data)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper", false]], "mlflowdatahelper (class in graphdoc.data.mlflow_data.mlflow_data_helper)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper", false]], "model_by_args() (graphdoc.data.mlflow_data.mlflow_data_helper.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper.model_by_args", false]], "model_by_args() (graphdoc.data.mlflow_data.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper.model_by_args", false]], "model_by_args() (graphdoc.data.mlflowdatahelper method)": [[1, "graphdoc.data.MlflowDataHelper.model_by_args", false]], "model_by_args() (graphdoc.mlflowdatahelper method)": [[0, "graphdoc.MlflowDataHelper.model_by_args", false]], "model_by_name_and_version() (graphdoc.data.mlflow_data.mlflow_data_helper.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper.model_by_name_and_version", false]], "model_by_name_and_version() (graphdoc.data.mlflow_data.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper.model_by_name_and_version", false]], "model_by_name_and_version() (graphdoc.data.mlflowdatahelper method)": [[1, "graphdoc.data.MlflowDataHelper.model_by_name_and_version", false]], "model_by_name_and_version() (graphdoc.mlflowdatahelper method)": [[0, "graphdoc.MlflowDataHelper.model_by_name_and_version", false]], "model_by_uri() (graphdoc.data.mlflow_data.mlflow_data_helper.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper.model_by_uri", false]], "model_by_uri() (graphdoc.data.mlflow_data.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper.model_by_uri", false]], "model_by_uri() (graphdoc.data.mlflowdatahelper method)": [[1, "graphdoc.data.MlflowDataHelper.model_by_uri", false]], "model_by_uri() (graphdoc.mlflowdatahelper method)": [[0, "graphdoc.MlflowDataHelper.model_by_uri", false]], "model_config (graphdoc.baddocgeneratorsignature attribute)": [[0, "graphdoc.BadDocGeneratorSignature.model_config", false]], "model_config (graphdoc.docgeneratorhelpersignature attribute)": [[0, "graphdoc.DocGeneratorHelperSignature.model_config", false]], "model_config (graphdoc.docgeneratorsignature attribute)": [[0, "graphdoc.DocGeneratorSignature.model_config", false]], "model_config (graphdoc.docqualitydemonstrationsignature attribute)": [[0, "graphdoc.DocQualityDemonstrationSignature.model_config", false]], "model_config (graphdoc.docqualitysignature attribute)": [[0, "graphdoc.DocQualitySignature.model_config", false]], "model_config (graphdoc.prompts.baddocgeneratorsignature attribute)": [[6, "graphdoc.prompts.BadDocGeneratorSignature.model_config", false]], "model_config (graphdoc.prompts.docgeneratorhelpersignature attribute)": [[6, "graphdoc.prompts.DocGeneratorHelperSignature.model_config", false]], "model_config (graphdoc.prompts.docgeneratorsignature attribute)": [[6, "graphdoc.prompts.DocGeneratorSignature.model_config", false]], "model_config (graphdoc.prompts.docqualitydemonstrationsignature attribute)": [[6, "graphdoc.prompts.DocQualityDemonstrationSignature.model_config", false]], "model_config (graphdoc.prompts.docqualitysignature attribute)": [[6, "graphdoc.prompts.DocQualitySignature.model_config", false]], "model_config (graphdoc.prompts.schema_doc_generation.baddocgeneratorsignature attribute)": [[6, "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature.model_config", false]], "model_config (graphdoc.prompts.schema_doc_generation.docgeneratorhelpersignature attribute)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature.model_config", false]], "model_config (graphdoc.prompts.schema_doc_generation.docgeneratorsignature attribute)": [[6, "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature.model_config", false]], "model_config (graphdoc.prompts.schema_doc_quality.docqualitydemonstrationsignature attribute)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature.model_config", false]], "model_config (graphdoc.prompts.schema_doc_quality.docqualitysignature attribute)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualitySignature.model_config", false]], "model_signature() (graphdoc.data.dspy_data.dspy_data_helper.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper.model_signature", false]], "model_signature() (graphdoc.data.dspy_data.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.DspyDataHelper.model_signature", false]], "model_signature() (graphdoc.data.dspy_data.generation_data_helper.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.generation_data_helper.GenerationDataHelper.model_signature", false]], "model_signature() (graphdoc.data.dspy_data.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.GenerationDataHelper.model_signature", false]], "model_signature() (graphdoc.data.dspy_data.quality_data_helper.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.quality_data_helper.QualityDataHelper.model_signature", false]], "model_signature() (graphdoc.data.dspy_data.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.QualityDataHelper.model_signature", false]], "model_signature() (graphdoc.data.dspydatahelper static method)": [[1, "graphdoc.data.DspyDataHelper.model_signature", false]], "model_signature() (graphdoc.data.generationdatahelper static method)": [[1, "graphdoc.data.GenerationDataHelper.model_signature", false]], "model_signature() (graphdoc.data.qualitydatahelper static method)": [[1, "graphdoc.data.QualityDataHelper.model_signature", false]], "model_signature() (graphdoc.dspydatahelper static method)": [[0, "graphdoc.DspyDataHelper.model_signature", false]], "model_signature() (graphdoc.generationdatahelper static method)": [[0, "graphdoc.GenerationDataHelper.model_signature", false]], "model_signature() (graphdoc.qualitydatahelper static method)": [[0, "graphdoc.QualityDataHelper.model_signature", false]], "module": [[0, "module-graphdoc", false], [0, "module-graphdoc.config", false], [0, "module-graphdoc.main", false], [1, "module-graphdoc.data", false], [1, "module-graphdoc.data.helper", false], [1, "module-graphdoc.data.local", false], [1, "module-graphdoc.data.parser", false], [1, "module-graphdoc.data.schema", false], [2, "module-graphdoc.data.dspy_data", false], [2, "module-graphdoc.data.dspy_data.dspy_data_helper", false], [2, "module-graphdoc.data.dspy_data.generation_data_helper", false], [2, "module-graphdoc.data.dspy_data.quality_data_helper", false], [3, "module-graphdoc.data.mlflow_data", false], [3, "module-graphdoc.data.mlflow_data.mlflow_data_helper", false], [4, "module-graphdoc.eval", false], [4, "module-graphdoc.eval.doc_generator_eval", false], [5, "module-graphdoc.modules", false], [5, "module-graphdoc.modules.doc_generator_module", false], [6, "module-graphdoc.prompts", false], [6, "module-graphdoc.prompts.schema_doc_generation", false], [6, "module-graphdoc.prompts.schema_doc_quality", false], [6, "module-graphdoc.prompts.single_prompt", false], [7, "module-graphdoc.train", false], [7, "module-graphdoc.train.doc_generator_trainer", false], [7, "module-graphdoc.train.doc_quality_trainer", false], [7, "module-graphdoc.train.optimizers", false], [7, "module-graphdoc.train.single_prompt_trainer", false]], "one (graphdoc.data.schema.schemarating attribute)": [[1, "graphdoc.data.schema.SchemaRating.ONE", false]], "one (graphdoc.data.schemarating attribute)": [[1, "graphdoc.data.SchemaRating.ONE", false]], "one (graphdoc.schemarating attribute)": [[0, "graphdoc.SchemaRating.ONE", false]], "optimizer_class() (in module graphdoc)": [[0, "graphdoc.optimizer_class", false]], "optimizer_class() (in module graphdoc.train)": [[7, "graphdoc.train.optimizer_class", false]], "optimizer_class() (in module graphdoc.train.optimizers)": [[7, "graphdoc.train.optimizers.optimizer_class", false]], "optimizer_compile() (in module graphdoc)": [[0, "graphdoc.optimizer_compile", false]], "optimizer_compile() (in module graphdoc.train)": [[7, "graphdoc.train.optimizer_compile", false]], "optimizer_compile() (in module graphdoc.train.optimizers)": [[7, "graphdoc.train.optimizers.optimizer_compile", false]], "parse_objects_from_full_schema_object() (graphdoc.data.parser static method)": [[1, "graphdoc.data.Parser.parse_objects_from_full_schema_object", false]], "parse_objects_from_full_schema_object() (graphdoc.data.parser.parser static method)": [[1, "graphdoc.data.parser.Parser.parse_objects_from_full_schema_object", false]], "parse_objects_from_full_schema_object() (graphdoc.parser static method)": [[0, "graphdoc.Parser.parse_objects_from_full_schema_object", false]], "parse_schema_from_file() (graphdoc.data.parser static method)": [[1, "graphdoc.data.Parser.parse_schema_from_file", false]], "parse_schema_from_file() (graphdoc.data.parser.parser static method)": [[1, "graphdoc.data.parser.Parser.parse_schema_from_file", false]], "parse_schema_from_file() (graphdoc.parser static method)": [[0, "graphdoc.Parser.parse_schema_from_file", false]], "parser (class in graphdoc)": [[0, "graphdoc.Parser", false]], "parser (class in graphdoc.data)": [[1, "graphdoc.data.Parser", false]], "parser (class in graphdoc.data.parser)": [[1, "graphdoc.data.parser.Parser", false]], "perfect (graphdoc.data.schema.schemacategory attribute)": [[1, "graphdoc.data.schema.SchemaCategory.PERFECT", false]], "perfect (graphdoc.data.schema.schemacategorypath attribute)": [[1, "graphdoc.data.schema.SchemaCategoryPath.PERFECT", false]], "perfect (graphdoc.data.schemacategory attribute)": [[1, "graphdoc.data.SchemaCategory.PERFECT", false]], "perfect (graphdoc.data.schemacategorypath attribute)": [[1, "graphdoc.data.SchemaCategoryPath.PERFECT", false]], "perfect (graphdoc.schemacategory attribute)": [[0, "graphdoc.SchemaCategory.PERFECT", false]], "perfect (graphdoc.schemacategorypath attribute)": [[0, "graphdoc.SchemaCategoryPath.PERFECT", false]], "poor_but_correct (graphdoc.data.schema.schemacategory attribute)": [[1, "graphdoc.data.schema.SchemaCategory.POOR_BUT_CORRECT", false]], "poor_but_correct (graphdoc.data.schema.schemacategorypath attribute)": [[1, "graphdoc.data.schema.SchemaCategoryPath.POOR_BUT_CORRECT", false]], "poor_but_correct (graphdoc.data.schemacategory attribute)": [[1, "graphdoc.data.SchemaCategory.POOR_BUT_CORRECT", false]], "poor_but_correct (graphdoc.data.schemacategorypath attribute)": [[1, "graphdoc.data.SchemaCategoryPath.POOR_BUT_CORRECT", false]], "poor_but_correct (graphdoc.schemacategory attribute)": [[0, "graphdoc.SchemaCategory.POOR_BUT_CORRECT", false]], "poor_but_correct (graphdoc.schemacategorypath attribute)": [[0, "graphdoc.SchemaCategoryPath.POOR_BUT_CORRECT", false]], "prediction() (graphdoc.data.dspy_data.dspy_data_helper.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper.prediction", false]], "prediction() (graphdoc.data.dspy_data.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.DspyDataHelper.prediction", false]], "prediction() (graphdoc.data.dspy_data.generation_data_helper.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.generation_data_helper.GenerationDataHelper.prediction", false]], "prediction() (graphdoc.data.dspy_data.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.GenerationDataHelper.prediction", false]], "prediction() (graphdoc.data.dspy_data.quality_data_helper.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.quality_data_helper.QualityDataHelper.prediction", false]], "prediction() (graphdoc.data.dspy_data.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.QualityDataHelper.prediction", false]], "prediction() (graphdoc.data.dspydatahelper static method)": [[1, "graphdoc.data.DspyDataHelper.prediction", false]], "prediction() (graphdoc.data.generationdatahelper static method)": [[1, "graphdoc.data.GenerationDataHelper.prediction", false]], "prediction() (graphdoc.data.qualitydatahelper static method)": [[1, "graphdoc.data.QualityDataHelper.prediction", false]], "prediction() (graphdoc.dspydatahelper static method)": [[0, "graphdoc.DspyDataHelper.prediction", false]], "prediction() (graphdoc.generationdatahelper static method)": [[0, "graphdoc.GenerationDataHelper.prediction", false]], "prediction() (graphdoc.qualitydatahelper static method)": [[0, "graphdoc.QualityDataHelper.prediction", false]], "prediction_example() (graphdoc.data.dspy_data.dspy_data_helper.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper.prediction_example", false]], "prediction_example() (graphdoc.data.dspy_data.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.DspyDataHelper.prediction_example", false]], "prediction_example() (graphdoc.data.dspy_data.generation_data_helper.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.generation_data_helper.GenerationDataHelper.prediction_example", false]], "prediction_example() (graphdoc.data.dspy_data.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.GenerationDataHelper.prediction_example", false]], "prediction_example() (graphdoc.data.dspy_data.quality_data_helper.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.quality_data_helper.QualityDataHelper.prediction_example", false]], "prediction_example() (graphdoc.data.dspy_data.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.QualityDataHelper.prediction_example", false]], "prediction_example() (graphdoc.data.dspydatahelper static method)": [[1, "graphdoc.data.DspyDataHelper.prediction_example", false]], "prediction_example() (graphdoc.data.generationdatahelper static method)": [[1, "graphdoc.data.GenerationDataHelper.prediction_example", false]], "prediction_example() (graphdoc.data.qualitydatahelper static method)": [[1, "graphdoc.data.QualityDataHelper.prediction_example", false]], "prediction_example() (graphdoc.dspydatahelper static method)": [[0, "graphdoc.DspyDataHelper.prediction_example", false]], "prediction_example() (graphdoc.generationdatahelper static method)": [[0, "graphdoc.GenerationDataHelper.prediction_example", false]], "prediction_example() (graphdoc.qualitydatahelper static method)": [[0, "graphdoc.QualityDataHelper.prediction_example", false]], "prompt_signature() (graphdoc.data.dspy_data.dspy_data_helper.dspydatahelper method)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper.prompt_signature", false]], "prompt_signature() (graphdoc.data.dspy_data.dspydatahelper method)": [[2, "graphdoc.data.dspy_data.DspyDataHelper.prompt_signature", false]], "prompt_signature() (graphdoc.data.dspydatahelper method)": [[1, "graphdoc.data.DspyDataHelper.prompt_signature", false]], "prompt_signature() (graphdoc.dspydatahelper method)": [[0, "graphdoc.DspyDataHelper.prompt_signature", false]], "promptfactory (class in graphdoc)": [[0, "graphdoc.PromptFactory", false]], "promptfactory (class in graphdoc.prompts)": [[6, "graphdoc.prompts.PromptFactory", false]], "qualitydatahelper (class in graphdoc)": [[0, "graphdoc.QualityDataHelper", false]], "qualitydatahelper (class in graphdoc.data)": [[1, "graphdoc.data.QualityDataHelper", false]], "qualitydatahelper (class in graphdoc.data.dspy_data)": [[2, "graphdoc.data.dspy_data.QualityDataHelper", false]], "qualitydatahelper (class in graphdoc.data.dspy_data.quality_data_helper)": [[2, "graphdoc.data.dspy_data.quality_data_helper.QualityDataHelper", false]], "rating (graphdoc.data.schema.schemaobject attribute)": [[1, "graphdoc.data.schema.SchemaObject.rating", false]], "rating (graphdoc.data.schemaobject attribute)": [[1, "graphdoc.data.SchemaObject.rating", false]], "rating (graphdoc.docqualitydemonstrationsignature attribute)": [[0, "graphdoc.DocQualityDemonstrationSignature.rating", false]], "rating (graphdoc.docqualitysignature attribute)": [[0, "graphdoc.DocQualitySignature.rating", false]], "rating (graphdoc.prompts.docqualitydemonstrationsignature attribute)": [[6, "graphdoc.prompts.DocQualityDemonstrationSignature.rating", false]], "rating (graphdoc.prompts.docqualitysignature attribute)": [[6, "graphdoc.prompts.DocQualitySignature.rating", false]], "rating (graphdoc.prompts.schema_doc_quality.docqualitydemonstrationsignature attribute)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature.rating", false]], "rating (graphdoc.prompts.schema_doc_quality.docqualitysignature attribute)": [[6, "graphdoc.prompts.schema_doc_quality.DocQualitySignature.rating", false]], "rating (graphdoc.schemaobject attribute)": [[0, "graphdoc.SchemaObject.rating", false]], "run_parameters() (graphdoc.data.mlflow_data.mlflow_data_helper.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper.run_parameters", false]], "run_parameters() (graphdoc.data.mlflow_data.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper.run_parameters", false]], "run_parameters() (graphdoc.data.mlflowdatahelper method)": [[1, "graphdoc.data.MlflowDataHelper.run_parameters", false]], "run_parameters() (graphdoc.mlflowdatahelper method)": [[0, "graphdoc.MlflowDataHelper.run_parameters", false]], "save_model() (graphdoc.data.mlflow_data.mlflow_data_helper.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper.save_model", false]], "save_model() (graphdoc.data.mlflow_data.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper.save_model", false]], "save_model() (graphdoc.data.mlflowdatahelper method)": [[1, "graphdoc.data.MlflowDataHelper.save_model", false]], "save_model() (graphdoc.mlflowdatahelper method)": [[0, "graphdoc.MlflowDataHelper.save_model", false]], "schema_ast (graphdoc.data.schema.schemaobject attribute)": [[1, "graphdoc.data.schema.SchemaObject.schema_ast", false]], "schema_ast (graphdoc.data.schemaobject attribute)": [[1, "graphdoc.data.SchemaObject.schema_ast", false]], "schema_ast (graphdoc.schemaobject attribute)": [[0, "graphdoc.SchemaObject.schema_ast", false]], "schema_equality_check() (graphdoc.data.parser static method)": [[1, "graphdoc.data.Parser.schema_equality_check", false]], "schema_equality_check() (graphdoc.data.parser.parser static method)": [[1, "graphdoc.data.parser.Parser.schema_equality_check", false]], "schema_equality_check() (graphdoc.parser static method)": [[0, "graphdoc.Parser.schema_equality_check", false]], "schema_name (graphdoc.data.schema.schemaobject attribute)": [[1, "graphdoc.data.schema.SchemaObject.schema_name", false]], "schema_name (graphdoc.data.schemaobject attribute)": [[1, "graphdoc.data.SchemaObject.schema_name", false]], "schema_name (graphdoc.schemaobject attribute)": [[0, "graphdoc.SchemaObject.schema_name", false]], "schema_object_from_file() (graphdoc.data.parser static method)": [[1, "graphdoc.data.Parser.schema_object_from_file", false]], "schema_object_from_file() (graphdoc.data.parser.parser static method)": [[1, "graphdoc.data.parser.Parser.schema_object_from_file", false]], "schema_object_from_file() (graphdoc.parser static method)": [[0, "graphdoc.Parser.schema_object_from_file", false]], "schema_objects_from_folder() (graphdoc.data.local.localdatahelper method)": [[1, "graphdoc.data.local.LocalDataHelper.schema_objects_from_folder", false]], "schema_objects_from_folder() (graphdoc.data.localdatahelper method)": [[1, "graphdoc.data.LocalDataHelper.schema_objects_from_folder", false]], "schema_objects_from_folder() (graphdoc.localdatahelper method)": [[0, "graphdoc.LocalDataHelper.schema_objects_from_folder", false]], "schema_objects_from_folder_of_folders() (graphdoc.data.local.localdatahelper method)": [[1, "graphdoc.data.local.LocalDataHelper.schema_objects_from_folder_of_folders", false]], "schema_objects_from_folder_of_folders() (graphdoc.data.localdatahelper method)": [[1, "graphdoc.data.LocalDataHelper.schema_objects_from_folder_of_folders", false]], "schema_objects_from_folder_of_folders() (graphdoc.localdatahelper method)": [[0, "graphdoc.LocalDataHelper.schema_objects_from_folder_of_folders", false]], "schema_objects_to_dataset() (in module graphdoc)": [[0, "graphdoc.schema_objects_to_dataset", false]], "schema_objects_to_dataset() (in module graphdoc.data)": [[1, "graphdoc.data.schema_objects_to_dataset", false]], "schema_objects_to_dataset() (in module graphdoc.data.schema)": [[1, "graphdoc.data.schema.schema_objects_to_dataset", false]], "schema_str (graphdoc.data.schema.schemaobject attribute)": [[1, "graphdoc.data.schema.SchemaObject.schema_str", false]], "schema_str (graphdoc.data.schemaobject attribute)": [[1, "graphdoc.data.SchemaObject.schema_str", false]], "schema_str (graphdoc.schemaobject attribute)": [[0, "graphdoc.SchemaObject.schema_str", false]], "schema_type (graphdoc.data.schema.schemaobject attribute)": [[1, "graphdoc.data.schema.SchemaObject.schema_type", false]], "schema_type (graphdoc.data.schemaobject attribute)": [[1, "graphdoc.data.SchemaObject.schema_type", false]], "schema_type (graphdoc.schemaobject attribute)": [[0, "graphdoc.SchemaObject.schema_type", false]], "schemacategory (class in graphdoc)": [[0, "graphdoc.SchemaCategory", false]], "schemacategory (class in graphdoc.data)": [[1, "graphdoc.data.SchemaCategory", false]], "schemacategory (class in graphdoc.data.schema)": [[1, "graphdoc.data.schema.SchemaCategory", false]], "schemacategorypath (class in graphdoc)": [[0, "graphdoc.SchemaCategoryPath", false]], "schemacategorypath (class in graphdoc.data)": [[1, "graphdoc.data.SchemaCategoryPath", false]], "schemacategorypath (class in graphdoc.data.schema)": [[1, "graphdoc.data.schema.SchemaCategoryPath", false]], "schemacategoryratingmapping (class in graphdoc)": [[0, "graphdoc.SchemaCategoryRatingMapping", false]], "schemacategoryratingmapping (class in graphdoc.data)": [[1, "graphdoc.data.SchemaCategoryRatingMapping", false]], "schemacategoryratingmapping (class in graphdoc.data.schema)": [[1, "graphdoc.data.schema.SchemaCategoryRatingMapping", false]], "schemaobject (class in graphdoc)": [[0, "graphdoc.SchemaObject", false]], "schemaobject (class in graphdoc.data)": [[1, "graphdoc.data.SchemaObject", false]], "schemaobject (class in graphdoc.data.schema)": [[1, "graphdoc.data.schema.SchemaObject", false]], "schemarating (class in graphdoc)": [[0, "graphdoc.SchemaRating", false]], "schemarating (class in graphdoc.data)": [[1, "graphdoc.data.SchemaRating", false]], "schemarating (class in graphdoc.data.schema)": [[1, "graphdoc.data.schema.SchemaRating", false]], "schematype (class in graphdoc)": [[0, "graphdoc.SchemaType", false]], "schematype (class in graphdoc.data)": [[1, "graphdoc.data.SchemaType", false]], "schematype (class in graphdoc.data.schema)": [[1, "graphdoc.data.schema.SchemaType", false]], "set_auth_env_vars() (graphdoc.data.mlflow_data.mlflow_data_helper.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper.set_auth_env_vars", false]], "set_auth_env_vars() (graphdoc.data.mlflow_data.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper.set_auth_env_vars", false]], "set_auth_env_vars() (graphdoc.data.mlflowdatahelper method)": [[1, "graphdoc.data.MlflowDataHelper.set_auth_env_vars", false]], "set_auth_env_vars() (graphdoc.mlflowdatahelper method)": [[0, "graphdoc.MlflowDataHelper.set_auth_env_vars", false]], "setup_logging() (in module graphdoc)": [[0, "graphdoc.setup_logging", false]], "setup_logging() (in module graphdoc.data)": [[1, "graphdoc.data.setup_logging", false]], "setup_logging() (in module graphdoc.data.helper)": [[1, "graphdoc.data.helper.setup_logging", false]], "single_prompt() (graphdoc.promptfactory static method)": [[0, "graphdoc.PromptFactory.single_prompt", false]], "single_prompt() (graphdoc.prompts.promptfactory static method)": [[6, "graphdoc.prompts.PromptFactory.single_prompt", false]], "single_prompt_from_dict() (in module graphdoc)": [[0, "graphdoc.single_prompt_from_dict", false]], "single_prompt_from_dict() (in module graphdoc.config)": [[0, "graphdoc.config.single_prompt_from_dict", false]], "single_prompt_from_yaml() (in module graphdoc)": [[0, "graphdoc.single_prompt_from_yaml", false]], "single_prompt_from_yaml() (in module graphdoc.config)": [[0, "graphdoc.config.single_prompt_from_yaml", false]], "single_trainer() (graphdoc.train.trainerfactory static method)": [[7, "graphdoc.train.TrainerFactory.single_trainer", false]], "single_trainer_from_dict() (in module graphdoc)": [[0, "graphdoc.single_trainer_from_dict", false]], "single_trainer_from_dict() (in module graphdoc.config)": [[0, "graphdoc.config.single_trainer_from_dict", false]], "single_trainer_from_yaml() (in module graphdoc)": [[0, "graphdoc.single_trainer_from_yaml", false]], "single_trainer_from_yaml() (in module graphdoc.config)": [[0, "graphdoc.config.single_trainer_from_yaml", false]], "singleprompt (class in graphdoc)": [[0, "graphdoc.SinglePrompt", false]], "singleprompt (class in graphdoc.prompts)": [[6, "graphdoc.prompts.SinglePrompt", false]], "singleprompt (class in graphdoc.prompts.single_prompt)": [[6, "graphdoc.prompts.single_prompt.SinglePrompt", false]], "singleprompt (class in graphdoc.train)": [[7, "graphdoc.train.SinglePrompt", false]], "singleprompttrainer (class in graphdoc)": [[0, "graphdoc.SinglePromptTrainer", false]], "singleprompttrainer (class in graphdoc.train)": [[7, "graphdoc.train.SinglePromptTrainer", false]], "singleprompttrainer (class in graphdoc.train.single_prompt_trainer)": [[7, "graphdoc.train.single_prompt_trainer.SinglePromptTrainer", false]], "split_trainset() (in module graphdoc)": [[0, "graphdoc.split_trainset", false]], "split_trainset() (in module graphdoc.config)": [[0, "graphdoc.config.split_trainset", false]], "table_schema (graphdoc.data.schema.schematype attribute)": [[1, "graphdoc.data.schema.SchemaType.TABLE_SCHEMA", false]], "table_schema (graphdoc.data.schematype attribute)": [[1, "graphdoc.data.SchemaType.TABLE_SCHEMA", false]], "table_schema (graphdoc.schematype attribute)": [[0, "graphdoc.SchemaType.TABLE_SCHEMA", false]], "three (graphdoc.data.schema.schemarating attribute)": [[1, "graphdoc.data.schema.SchemaRating.THREE", false]], "three (graphdoc.data.schemarating attribute)": [[1, "graphdoc.data.SchemaRating.THREE", false]], "three (graphdoc.schemarating attribute)": [[0, "graphdoc.SchemaRating.THREE", false]], "to_dataset() (graphdoc.data.schema.schemaobject method)": [[1, "graphdoc.data.schema.SchemaObject.to_dataset", false]], "to_dataset() (graphdoc.data.schemaobject method)": [[1, "graphdoc.data.SchemaObject.to_dataset", false]], "to_dataset() (graphdoc.schemaobject method)": [[0, "graphdoc.SchemaObject.to_dataset", false]], "to_dict() (graphdoc.data.schema.schemaobject method)": [[1, "graphdoc.data.schema.SchemaObject.to_dict", false]], "to_dict() (graphdoc.data.schemaobject method)": [[1, "graphdoc.data.SchemaObject.to_dict", false]], "to_dict() (graphdoc.schemaobject method)": [[0, "graphdoc.SchemaObject.to_dict", false]], "train() (graphdoc.docgeneratortrainer method)": [[0, "graphdoc.DocGeneratorTrainer.train", false]], "train() (graphdoc.docqualitytrainer method)": [[0, "graphdoc.DocQualityTrainer.train", false]], "train() (graphdoc.singleprompttrainer method)": [[0, "graphdoc.SinglePromptTrainer.train", false]], "train() (graphdoc.train.doc_generator_trainer.docgeneratortrainer method)": [[7, "graphdoc.train.doc_generator_trainer.DocGeneratorTrainer.train", false]], "train() (graphdoc.train.doc_quality_trainer.docqualitytrainer method)": [[7, "graphdoc.train.doc_quality_trainer.DocQualityTrainer.train", false]], "train() (graphdoc.train.docgeneratortrainer method)": [[7, "graphdoc.train.DocGeneratorTrainer.train", false]], "train() (graphdoc.train.docqualitytrainer method)": [[7, "graphdoc.train.DocQualityTrainer.train", false]], "train() (graphdoc.train.single_prompt_trainer.singleprompttrainer method)": [[7, "graphdoc.train.single_prompt_trainer.SinglePromptTrainer.train", false]], "train() (graphdoc.train.singleprompttrainer method)": [[7, "graphdoc.train.SinglePromptTrainer.train", false]], "trainerfactory (class in graphdoc.train)": [[7, "graphdoc.train.TrainerFactory", false]], "trainset() (graphdoc.data.dspy_data.dspy_data_helper.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper.trainset", false]], "trainset() (graphdoc.data.dspy_data.dspydatahelper static method)": [[2, "graphdoc.data.dspy_data.DspyDataHelper.trainset", false]], "trainset() (graphdoc.data.dspy_data.generation_data_helper.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.generation_data_helper.GenerationDataHelper.trainset", false]], "trainset() (graphdoc.data.dspy_data.generationdatahelper static method)": [[2, "graphdoc.data.dspy_data.GenerationDataHelper.trainset", false]], "trainset() (graphdoc.data.dspy_data.quality_data_helper.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.quality_data_helper.QualityDataHelper.trainset", false]], "trainset() (graphdoc.data.dspy_data.qualitydatahelper static method)": [[2, "graphdoc.data.dspy_data.QualityDataHelper.trainset", false]], "trainset() (graphdoc.data.dspydatahelper static method)": [[1, "graphdoc.data.DspyDataHelper.trainset", false]], "trainset() (graphdoc.data.generationdatahelper static method)": [[1, "graphdoc.data.GenerationDataHelper.trainset", false]], "trainset() (graphdoc.data.qualitydatahelper static method)": [[1, "graphdoc.data.QualityDataHelper.trainset", false]], "trainset() (graphdoc.dspydatahelper static method)": [[0, "graphdoc.DspyDataHelper.trainset", false]], "trainset() (graphdoc.generationdatahelper static method)": [[0, "graphdoc.GenerationDataHelper.trainset", false]], "trainset() (graphdoc.qualitydatahelper static method)": [[0, "graphdoc.QualityDataHelper.trainset", false]], "trainset_and_evalset_from_yaml() (in module graphdoc)": [[0, "graphdoc.trainset_and_evalset_from_yaml", false]], "trainset_and_evalset_from_yaml() (in module graphdoc.config)": [[0, "graphdoc.config.trainset_and_evalset_from_yaml", false]], "trainset_from_dict() (in module graphdoc)": [[0, "graphdoc.trainset_from_dict", false]], "trainset_from_dict() (in module graphdoc.config)": [[0, "graphdoc.config.trainset_from_dict", false]], "trainset_from_yaml() (in module graphdoc)": [[0, "graphdoc.trainset_from_yaml", false]], "trainset_from_yaml() (in module graphdoc.config)": [[0, "graphdoc.config.trainset_from_yaml", false]], "two (graphdoc.data.schema.schemarating attribute)": [[1, "graphdoc.data.schema.SchemaRating.TWO", false]], "two (graphdoc.data.schemarating attribute)": [[1, "graphdoc.data.SchemaRating.TWO", false]], "two (graphdoc.schemarating attribute)": [[0, "graphdoc.SchemaRating.TWO", false]], "update_auth_env_vars() (graphdoc.data.mlflow_data.mlflow_data_helper.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper.update_auth_env_vars", false]], "update_auth_env_vars() (graphdoc.data.mlflow_data.mlflowdatahelper method)": [[3, "graphdoc.data.mlflow_data.MlflowDataHelper.update_auth_env_vars", false]], "update_auth_env_vars() (graphdoc.data.mlflowdatahelper method)": [[1, "graphdoc.data.MlflowDataHelper.update_auth_env_vars", false]], "update_auth_env_vars() (graphdoc.mlflowdatahelper method)": [[0, "graphdoc.MlflowDataHelper.update_auth_env_vars", false]], "update_node_descriptions() (graphdoc.data.parser static method)": [[1, "graphdoc.data.Parser.update_node_descriptions", false]], "update_node_descriptions() (graphdoc.data.parser.parser static method)": [[1, "graphdoc.data.parser.Parser.update_node_descriptions", false]], "update_node_descriptions() (graphdoc.parser static method)": [[0, "graphdoc.Parser.update_node_descriptions", false]], "zero (graphdoc.data.schema.schemarating attribute)": [[1, "graphdoc.data.schema.SchemaRating.ZERO", false]], "zero (graphdoc.data.schemarating attribute)": [[1, "graphdoc.data.SchemaRating.ZERO", false]], "zero (graphdoc.schemarating attribute)": [[0, "graphdoc.SchemaRating.ZERO", false]]}, "objects": {"": [[0, 0, 0, "-", "graphdoc"]], "graphdoc": [[0, 1, 1, "", "BadDocGeneratorSignature"], [0, 1, 1, "", "DocGeneratorEvaluator"], [0, 1, 1, "", "DocGeneratorHelperSignature"], [0, 1, 1, "", "DocGeneratorModule"], [0, 1, 1, "", "DocGeneratorPrompt"], [0, 1, 1, "", "DocGeneratorSignature"], [0, 1, 1, "", "DocGeneratorTrainer"], [0, 1, 1, "", "DocQualityDemonstrationSignature"], [0, 1, 1, "", "DocQualityPrompt"], [0, 1, 1, "", "DocQualitySignature"], [0, 1, 1, "", "DocQualityTrainer"], [0, 1, 1, "", "DspyDataHelper"], [0, 1, 1, "", "GenerationDataHelper"], [0, 1, 1, "", "LocalDataHelper"], [0, 1, 1, "", "MlflowDataHelper"], [0, 1, 1, "", "Parser"], [0, 1, 1, "", "PromptFactory"], [0, 1, 1, "", "QualityDataHelper"], [0, 1, 1, "", "SchemaCategory"], [0, 1, 1, "", "SchemaCategoryPath"], [0, 1, 1, "", "SchemaCategoryRatingMapping"], [0, 1, 1, "", "SchemaObject"], [0, 1, 1, "", "SchemaRating"], [0, 1, 1, "", "SchemaType"], [0, 1, 1, "", "SinglePrompt"], [0, 1, 1, "", "SinglePromptTrainer"], [0, 4, 1, "", "_env_constructor"], [0, 4, 1, "", "check_directory_path"], [0, 4, 1, "", "check_file_path"], [0, 0, 0, "-", "config"], [1, 0, 0, "-", "data"], [0, 4, 1, "", "doc_generator_eval_from_yaml"], [0, 4, 1, "", "doc_generator_module_from_dict"], [0, 4, 1, "", "doc_generator_module_from_yaml"], [4, 0, 0, "-", "eval"], [0, 4, 1, "", "load_yaml_config"], [0, 0, 0, "-", "main"], [0, 4, 1, "", "mlflow_data_helper_from_dict"], [0, 4, 1, "", "mlflow_data_helper_from_yaml"], [5, 0, 0, "-", "modules"], [0, 4, 1, "", "optimizer_class"], [0, 4, 1, "", "optimizer_compile"], [6, 0, 0, "-", "prompts"], [0, 4, 1, "", "schema_objects_to_dataset"], [0, 4, 1, "", "setup_logging"], [0, 4, 1, "", "single_prompt_from_dict"], [0, 4, 1, "", "single_prompt_from_yaml"], [0, 4, 1, "", "single_trainer_from_dict"], [0, 4, 1, "", "single_trainer_from_yaml"], [0, 4, 1, "", "split_trainset"], [7, 0, 0, "-", "train"], [0, 4, 1, "", "trainset_and_evalset_from_yaml"], [0, 4, 1, "", "trainset_from_dict"], [0, 4, 1, "", "trainset_from_yaml"]], "graphdoc.BadDocGeneratorSignature": [[0, 2, 1, "", "database_schema"], [0, 2, 1, "", "documented_schema"], [0, 2, 1, "", "model_config"]], "graphdoc.DocGeneratorEvaluator": [[0, 3, 1, "", "__init__"], [0, 3, 1, "", "evaluate"], [0, 3, 1, "", "forward"]], "graphdoc.DocGeneratorHelperSignature": [[0, 2, 1, "", "database_schema"], [0, 2, 1, "", "documented_schema"], [0, 2, 1, "", "model_config"]], "graphdoc.DocGeneratorModule": [[0, 3, 1, "", "__init__"], [0, 3, 1, "", "_predict"], [0, 3, 1, "", "_retry_by_rating"], [0, 3, 1, "", "document_full_schema"], [0, 3, 1, "", "forward"]], "graphdoc.DocGeneratorPrompt": [[0, 3, 1, "", "compare_metrics"], [0, 3, 1, "", "evaluate_documentation_quality"], [0, 3, 1, "", "evaluate_metric"], [0, 3, 1, "", "format_metric"]], "graphdoc.DocGeneratorSignature": [[0, 2, 1, "", "database_schema"], [0, 2, 1, "", "documented_schema"], [0, 2, 1, "", "model_config"]], "graphdoc.DocGeneratorTrainer": [[0, 3, 1, "", "__init__"], [0, 3, 1, "", "_calculate_average_score"], [0, 3, 1, "", "evaluate_training"], [0, 3, 1, "", "evaluation_metrics"], [0, 3, 1, "", "train"]], "graphdoc.DocQualityDemonstrationSignature": [[0, 2, 1, "", "category"], [0, 2, 1, "", "database_schema"], [0, 2, 1, "", "model_config"], [0, 2, 1, "", "rating"]], "graphdoc.DocQualityPrompt": [[0, 3, 1, "", "__init__"], [0, 3, 1, "", "compare_metrics"], [0, 3, 1, "", "evaluate_metric"], [0, 3, 1, "", "format_metric"]], "graphdoc.DocQualitySignature": [[0, 2, 1, "", "category"], [0, 2, 1, "", "database_schema"], [0, 2, 1, "", "model_config"], [0, 2, 1, "", "rating"]], "graphdoc.DocQualityTrainer": [[0, 3, 1, "", "__init__"], [0, 3, 1, "", "evaluate_training"], [0, 3, 1, "", "evaluation_metrics"], [0, 3, 1, "", "train"]], "graphdoc.DspyDataHelper": [[0, 3, 1, "", "_"], [0, 3, 1, "", "example"], [0, 3, 1, "", "example_example"], [0, 3, 1, "", "formatted_signature"], [0, 3, 1, "", "model_signature"], [0, 3, 1, "", "prediction"], [0, 3, 1, "", "prediction_example"], [0, 3, 1, "", "prompt_signature"], [0, 3, 1, "", "trainset"]], "graphdoc.GenerationDataHelper": [[0, 3, 1, "", "example"], [0, 3, 1, "", "example_example"], [0, 3, 1, "", "model_signature"], [0, 3, 1, "", "prediction"], [0, 3, 1, "", "prediction_example"], [0, 3, 1, "", "trainset"]], "graphdoc.LocalDataHelper": [[0, 3, 1, "", "folder_of_folders_to_dataset"], [0, 3, 1, "", "folder_to_dataset"], [0, 3, 1, "", "schema_objects_from_folder"], [0, 3, 1, "", "schema_objects_from_folder_of_folders"]], "graphdoc.MlflowDataHelper": [[0, 3, 1, "", "__init__"], [0, 3, 1, "", "latest_model_version"], [0, 3, 1, "", "model_by_args"], [0, 3, 1, "", "model_by_name_and_version"], [0, 3, 1, "", "model_by_uri"], [0, 3, 1, "", "run_parameters"], [0, 3, 1, "", "save_model"], [0, 3, 1, "", "set_auth_env_vars"], [0, 3, 1, "", "update_auth_env_vars"]], "graphdoc.Parser": [[0, 2, 1, "", "DEFAULT_NODE_TYPES"], [0, 3, 1, "", "_check_node_type"], [0, 3, 1, "", "count_description_pattern_matching"], [0, 3, 1, "", "fill_empty_descriptions"], [0, 3, 1, "", "parse_objects_from_full_schema_object"], [0, 3, 1, "", "parse_schema_from_file"], [0, 3, 1, "", "schema_equality_check"], [0, 3, 1, "", "schema_object_from_file"], [0, 3, 1, "", "update_node_descriptions"]], "graphdoc.PromptFactory": [[0, 3, 1, "", "single_prompt"]], "graphdoc.QualityDataHelper": [[0, 3, 1, "", "example"], [0, 3, 1, "", "example_example"], [0, 3, 1, "", "model_signature"], [0, 3, 1, "", "prediction"], [0, 3, 1, "", "prediction_example"], [0, 3, 1, "", "trainset"]], "graphdoc.SchemaCategory": [[0, 2, 1, "", "ALMOST_PERFECT"], [0, 2, 1, "", "BLANK"], [0, 2, 1, "", "INCORRECT"], [0, 2, 1, "", "PERFECT"], [0, 2, 1, "", "POOR_BUT_CORRECT"], [0, 3, 1, "", "from_str"]], "graphdoc.SchemaCategoryPath": [[0, 2, 1, "", "ALMOST_PERFECT"], [0, 2, 1, "", "BLANK"], [0, 2, 1, "", "INCORRECT"], [0, 2, 1, "", "PERFECT"], [0, 2, 1, "", "POOR_BUT_CORRECT"], [0, 3, 1, "", "get_path"]], "graphdoc.SchemaCategoryRatingMapping": [[0, 3, 1, "", "get_category"], [0, 3, 1, "", "get_rating"]], "graphdoc.SchemaObject": [[0, 3, 1, "", "_hf_schema_object_columns"], [0, 2, 1, "", "category"], [0, 3, 1, "", "from_dict"], [0, 2, 1, "", "key"], [0, 2, 1, "", "rating"], [0, 2, 1, "", "schema_ast"], [0, 2, 1, "", "schema_name"], [0, 2, 1, "", "schema_str"], [0, 2, 1, "", "schema_type"], [0, 3, 1, "", "to_dataset"], [0, 3, 1, "", "to_dict"]], "graphdoc.SchemaRating": [[0, 2, 1, "", "FOUR"], [0, 2, 1, "", "ONE"], [0, 2, 1, "", "THREE"], [0, 2, 1, "", "TWO"], [0, 2, 1, "", "ZERO"], [0, 3, 1, "", "from_value"]], "graphdoc.SchemaType": [[0, 2, 1, "", "ENUM_SCHEMA"], [0, 2, 1, "", "FULL_SCHEMA"], [0, 2, 1, "", "TABLE_SCHEMA"], [0, 3, 1, "", "from_str"]], "graphdoc.SinglePrompt": [[0, 3, 1, "", "__init__"], [0, 3, 1, "", "compare_metrics"], [0, 3, 1, "", "evaluate_evalset"], [0, 3, 1, "", "evaluate_metric"], [0, 3, 1, "", "format_metric"]], "graphdoc.SinglePromptTrainer": [[0, 3, 1, "", "__init__"], [0, 3, 1, "", "evaluate_training"], [0, 3, 1, "", "evaluation_metrics"], [0, 3, 1, "", "train"]], "graphdoc.config": [[0, 4, 1, "", "doc_generator_eval_from_yaml"], [0, 4, 1, "", "doc_generator_module_from_dict"], [0, 4, 1, "", "doc_generator_module_from_yaml"], [0, 4, 1, "", "mlflow_data_helper_from_dict"], [0, 4, 1, "", "mlflow_data_helper_from_yaml"], [0, 4, 1, "", "single_prompt_from_dict"], [0, 4, 1, "", "single_prompt_from_yaml"], [0, 4, 1, "", "single_trainer_from_dict"], [0, 4, 1, "", "single_trainer_from_yaml"], [0, 4, 1, "", "split_trainset"], [0, 4, 1, "", "trainset_and_evalset_from_yaml"], [0, 4, 1, "", "trainset_from_dict"], [0, 4, 1, "", "trainset_from_yaml"]], "graphdoc.data": [[1, 1, 1, "", "DspyDataHelper"], [1, 1, 1, "", "GenerationDataHelper"], [1, 1, 1, "", "LocalDataHelper"], [1, 1, 1, "", "MlflowDataHelper"], [1, 1, 1, "", "Parser"], [1, 1, 1, "", "QualityDataHelper"], [1, 1, 1, "", "SchemaCategory"], [1, 1, 1, "", "SchemaCategoryPath"], [1, 1, 1, "", "SchemaCategoryRatingMapping"], [1, 1, 1, "", "SchemaObject"], [1, 1, 1, "", "SchemaRating"], [1, 1, 1, "", "SchemaType"], [1, 4, 1, "", "_env_constructor"], [1, 4, 1, "", "check_directory_path"], [1, 4, 1, "", "check_file_path"], [2, 0, 0, "-", "dspy_data"], [1, 0, 0, "-", "helper"], [1, 4, 1, "", "load_yaml_config"], [1, 0, 0, "-", "local"], [3, 0, 0, "-", "mlflow_data"], [1, 0, 0, "-", "parser"], [1, 0, 0, "-", "schema"], [1, 4, 1, "", "schema_objects_to_dataset"], [1, 4, 1, "", "setup_logging"]], "graphdoc.data.DspyDataHelper": [[1, 3, 1, "", "_"], [1, 3, 1, "", "example"], [1, 3, 1, "", "example_example"], [1, 3, 1, "", "formatted_signature"], [1, 3, 1, "", "model_signature"], [1, 3, 1, "", "prediction"], [1, 3, 1, "", "prediction_example"], [1, 3, 1, "", "prompt_signature"], [1, 3, 1, "", "trainset"]], "graphdoc.data.GenerationDataHelper": [[1, 3, 1, "", "example"], [1, 3, 1, "", "example_example"], [1, 3, 1, "", "model_signature"], [1, 3, 1, "", "prediction"], [1, 3, 1, "", "prediction_example"], [1, 3, 1, "", "trainset"]], "graphdoc.data.LocalDataHelper": [[1, 3, 1, "", "folder_of_folders_to_dataset"], [1, 3, 1, "", "folder_to_dataset"], [1, 3, 1, "", "schema_objects_from_folder"], [1, 3, 1, "", "schema_objects_from_folder_of_folders"]], "graphdoc.data.MlflowDataHelper": [[1, 3, 1, "", "__init__"], [1, 3, 1, "", "latest_model_version"], [1, 3, 1, "", "model_by_args"], [1, 3, 1, "", "model_by_name_and_version"], [1, 3, 1, "", "model_by_uri"], [1, 3, 1, "", "run_parameters"], [1, 3, 1, "", "save_model"], [1, 3, 1, "", "set_auth_env_vars"], [1, 3, 1, "", "update_auth_env_vars"]], "graphdoc.data.Parser": [[1, 2, 1, "", "DEFAULT_NODE_TYPES"], [1, 3, 1, "", "_check_node_type"], [1, 3, 1, "", "count_description_pattern_matching"], [1, 3, 1, "", "fill_empty_descriptions"], [1, 3, 1, "", "parse_objects_from_full_schema_object"], [1, 3, 1, "", "parse_schema_from_file"], [1, 3, 1, "", "schema_equality_check"], [1, 3, 1, "", "schema_object_from_file"], [1, 3, 1, "", "update_node_descriptions"]], "graphdoc.data.QualityDataHelper": [[1, 3, 1, "", "example"], [1, 3, 1, "", "example_example"], [1, 3, 1, "", "model_signature"], [1, 3, 1, "", "prediction"], [1, 3, 1, "", "prediction_example"], [1, 3, 1, "", "trainset"]], "graphdoc.data.SchemaCategory": [[1, 2, 1, "", "ALMOST_PERFECT"], [1, 2, 1, "", "BLANK"], [1, 2, 1, "", "INCORRECT"], [1, 2, 1, "", "PERFECT"], [1, 2, 1, "", "POOR_BUT_CORRECT"], [1, 3, 1, "", "from_str"]], "graphdoc.data.SchemaCategoryPath": [[1, 2, 1, "", "ALMOST_PERFECT"], [1, 2, 1, "", "BLANK"], [1, 2, 1, "", "INCORRECT"], [1, 2, 1, "", "PERFECT"], [1, 2, 1, "", "POOR_BUT_CORRECT"], [1, 3, 1, "", "get_path"]], "graphdoc.data.SchemaCategoryRatingMapping": [[1, 3, 1, "", "get_category"], [1, 3, 1, "", "get_rating"]], "graphdoc.data.SchemaObject": [[1, 3, 1, "", "_hf_schema_object_columns"], [1, 2, 1, "", "category"], [1, 3, 1, "", "from_dict"], [1, 2, 1, "", "key"], [1, 2, 1, "", "rating"], [1, 2, 1, "", "schema_ast"], [1, 2, 1, "", "schema_name"], [1, 2, 1, "", "schema_str"], [1, 2, 1, "", "schema_type"], [1, 3, 1, "", "to_dataset"], [1, 3, 1, "", "to_dict"]], "graphdoc.data.SchemaRating": [[1, 2, 1, "", "FOUR"], [1, 2, 1, "", "ONE"], [1, 2, 1, "", "THREE"], [1, 2, 1, "", "TWO"], [1, 2, 1, "", "ZERO"], [1, 3, 1, "", "from_value"]], "graphdoc.data.SchemaType": [[1, 2, 1, "", "ENUM_SCHEMA"], [1, 2, 1, "", "FULL_SCHEMA"], [1, 2, 1, "", "TABLE_SCHEMA"], [1, 3, 1, "", "from_str"]], "graphdoc.data.dspy_data": [[2, 1, 1, "", "DspyDataHelper"], [2, 1, 1, "", "GenerationDataHelper"], [2, 1, 1, "", "QualityDataHelper"], [2, 0, 0, "-", "dspy_data_helper"], [2, 0, 0, "-", "generation_data_helper"], [2, 0, 0, "-", "quality_data_helper"]], "graphdoc.data.dspy_data.DspyDataHelper": [[2, 3, 1, "", "_"], [2, 3, 1, "", "example"], [2, 3, 1, "", "example_example"], [2, 3, 1, "", "formatted_signature"], [2, 3, 1, "", "model_signature"], [2, 3, 1, "", "prediction"], [2, 3, 1, "", "prediction_example"], [2, 3, 1, "", "prompt_signature"], [2, 3, 1, "", "trainset"]], "graphdoc.data.dspy_data.GenerationDataHelper": [[2, 3, 1, "", "example"], [2, 3, 1, "", "example_example"], [2, 3, 1, "", "model_signature"], [2, 3, 1, "", "prediction"], [2, 3, 1, "", "prediction_example"], [2, 3, 1, "", "trainset"]], "graphdoc.data.dspy_data.QualityDataHelper": [[2, 3, 1, "", "example"], [2, 3, 1, "", "example_example"], [2, 3, 1, "", "model_signature"], [2, 3, 1, "", "prediction"], [2, 3, 1, "", "prediction_example"], [2, 3, 1, "", "trainset"]], "graphdoc.data.dspy_data.dspy_data_helper": [[2, 1, 1, "", "DspyDataHelper"]], "graphdoc.data.dspy_data.dspy_data_helper.DspyDataHelper": [[2, 3, 1, "", "_"], [2, 3, 1, "", "example"], [2, 3, 1, "", "example_example"], [2, 3, 1, "", "formatted_signature"], [2, 3, 1, "", "model_signature"], [2, 3, 1, "", "prediction"], [2, 3, 1, "", "prediction_example"], [2, 3, 1, "", "prompt_signature"], [2, 3, 1, "", "trainset"]], "graphdoc.data.dspy_data.generation_data_helper": [[2, 1, 1, "", "GenerationDataHelper"]], "graphdoc.data.dspy_data.generation_data_helper.GenerationDataHelper": [[2, 3, 1, "", "example"], [2, 3, 1, "", "example_example"], [2, 3, 1, "", "model_signature"], [2, 3, 1, "", "prediction"], [2, 3, 1, "", "prediction_example"], [2, 3, 1, "", "trainset"]], "graphdoc.data.dspy_data.quality_data_helper": [[2, 1, 1, "", "QualityDataHelper"]], "graphdoc.data.dspy_data.quality_data_helper.QualityDataHelper": [[2, 3, 1, "", "example"], [2, 3, 1, "", "example_example"], [2, 3, 1, "", "model_signature"], [2, 3, 1, "", "prediction"], [2, 3, 1, "", "prediction_example"], [2, 3, 1, "", "trainset"]], "graphdoc.data.helper": [[1, 4, 1, "", "_env_constructor"], [1, 4, 1, "", "check_directory_path"], [1, 4, 1, "", "check_file_path"], [1, 4, 1, "", "load_yaml_config"], [1, 4, 1, "", "setup_logging"]], "graphdoc.data.local": [[1, 1, 1, "", "LocalDataHelper"]], "graphdoc.data.local.LocalDataHelper": [[1, 3, 1, "", "folder_of_folders_to_dataset"], [1, 3, 1, "", "folder_to_dataset"], [1, 3, 1, "", "schema_objects_from_folder"], [1, 3, 1, "", "schema_objects_from_folder_of_folders"]], "graphdoc.data.mlflow_data": [[3, 1, 1, "", "MlflowDataHelper"], [3, 0, 0, "-", "mlflow_data_helper"]], "graphdoc.data.mlflow_data.MlflowDataHelper": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "latest_model_version"], [3, 3, 1, "", "model_by_args"], [3, 3, 1, "", "model_by_name_and_version"], [3, 3, 1, "", "model_by_uri"], [3, 3, 1, "", "run_parameters"], [3, 3, 1, "", "save_model"], [3, 3, 1, "", "set_auth_env_vars"], [3, 3, 1, "", "update_auth_env_vars"]], "graphdoc.data.mlflow_data.mlflow_data_helper": [[3, 1, 1, "", "MlflowDataHelper"]], "graphdoc.data.mlflow_data.mlflow_data_helper.MlflowDataHelper": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "latest_model_version"], [3, 3, 1, "", "model_by_args"], [3, 3, 1, "", "model_by_name_and_version"], [3, 3, 1, "", "model_by_uri"], [3, 3, 1, "", "run_parameters"], [3, 3, 1, "", "save_model"], [3, 3, 1, "", "set_auth_env_vars"], [3, 3, 1, "", "update_auth_env_vars"]], "graphdoc.data.parser": [[1, 1, 1, "", "Parser"]], "graphdoc.data.parser.Parser": [[1, 2, 1, "", "DEFAULT_NODE_TYPES"], [1, 3, 1, "", "_check_node_type"], [1, 3, 1, "", "count_description_pattern_matching"], [1, 3, 1, "", "fill_empty_descriptions"], [1, 3, 1, "", "parse_objects_from_full_schema_object"], [1, 3, 1, "", "parse_schema_from_file"], [1, 3, 1, "", "schema_equality_check"], [1, 3, 1, "", "schema_object_from_file"], [1, 3, 1, "", "update_node_descriptions"]], "graphdoc.data.schema": [[1, 1, 1, "", "SchemaCategory"], [1, 1, 1, "", "SchemaCategoryPath"], [1, 1, 1, "", "SchemaCategoryRatingMapping"], [1, 1, 1, "", "SchemaObject"], [1, 1, 1, "", "SchemaRating"], [1, 1, 1, "", "SchemaType"], [1, 4, 1, "", "schema_objects_to_dataset"]], "graphdoc.data.schema.SchemaCategory": [[1, 2, 1, "", "ALMOST_PERFECT"], [1, 2, 1, "", "BLANK"], [1, 2, 1, "", "INCORRECT"], [1, 2, 1, "", "PERFECT"], [1, 2, 1, "", "POOR_BUT_CORRECT"], [1, 3, 1, "", "from_str"]], "graphdoc.data.schema.SchemaCategoryPath": [[1, 2, 1, "", "ALMOST_PERFECT"], [1, 2, 1, "", "BLANK"], [1, 2, 1, "", "INCORRECT"], [1, 2, 1, "", "PERFECT"], [1, 2, 1, "", "POOR_BUT_CORRECT"], [1, 3, 1, "", "get_path"]], "graphdoc.data.schema.SchemaCategoryRatingMapping": [[1, 3, 1, "", "get_category"], [1, 3, 1, "", "get_rating"]], "graphdoc.data.schema.SchemaObject": [[1, 3, 1, "", "_hf_schema_object_columns"], [1, 2, 1, "", "category"], [1, 3, 1, "", "from_dict"], [1, 2, 1, "", "key"], [1, 2, 1, "", "rating"], [1, 2, 1, "", "schema_ast"], [1, 2, 1, "", "schema_name"], [1, 2, 1, "", "schema_str"], [1, 2, 1, "", "schema_type"], [1, 3, 1, "", "to_dataset"], [1, 3, 1, "", "to_dict"]], "graphdoc.data.schema.SchemaRating": [[1, 2, 1, "", "FOUR"], [1, 2, 1, "", "ONE"], [1, 2, 1, "", "THREE"], [1, 2, 1, "", "TWO"], [1, 2, 1, "", "ZERO"], [1, 3, 1, "", "from_value"]], "graphdoc.data.schema.SchemaType": [[1, 2, 1, "", "ENUM_SCHEMA"], [1, 2, 1, "", "FULL_SCHEMA"], [1, 2, 1, "", "TABLE_SCHEMA"], [1, 3, 1, "", "from_str"]], "graphdoc.eval": [[4, 1, 1, "", "DocGeneratorEvaluator"], [4, 0, 0, "-", "doc_generator_eval"]], "graphdoc.eval.DocGeneratorEvaluator": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "evaluate"], [4, 3, 1, "", "forward"]], "graphdoc.eval.doc_generator_eval": [[4, 1, 1, "", "DocGeneratorEvaluator"]], "graphdoc.eval.doc_generator_eval.DocGeneratorEvaluator": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "evaluate"], [4, 3, 1, "", "forward"]], "graphdoc.main": [[0, 5, 1, "", "log"]], "graphdoc.modules": [[5, 1, 1, "", "DocGeneratorModule"], [5, 0, 0, "-", "doc_generator_module"]], "graphdoc.modules.DocGeneratorModule": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "_predict"], [5, 3, 1, "", "_retry_by_rating"], [5, 3, 1, "", "document_full_schema"], [5, 3, 1, "", "forward"]], "graphdoc.modules.doc_generator_module": [[5, 1, 1, "", "DocGeneratorModule"]], "graphdoc.modules.doc_generator_module.DocGeneratorModule": [[5, 3, 1, "", "__init__"], [5, 3, 1, "", "_predict"], [5, 3, 1, "", "_retry_by_rating"], [5, 3, 1, "", "document_full_schema"], [5, 3, 1, "", "forward"]], "graphdoc.prompts": [[6, 1, 1, "", "BadDocGeneratorSignature"], [6, 1, 1, "", "DocGeneratorHelperSignature"], [6, 1, 1, "", "DocGeneratorPrompt"], [6, 1, 1, "", "DocGeneratorSignature"], [6, 1, 1, "", "DocQualityDemonstrationSignature"], [6, 1, 1, "", "DocQualityPrompt"], [6, 1, 1, "", "DocQualitySignature"], [6, 1, 1, "", "PromptFactory"], [6, 1, 1, "", "SinglePrompt"], [6, 0, 0, "-", "schema_doc_generation"], [6, 0, 0, "-", "schema_doc_quality"], [6, 0, 0, "-", "single_prompt"]], "graphdoc.prompts.BadDocGeneratorSignature": [[6, 2, 1, "", "database_schema"], [6, 2, 1, "", "documented_schema"], [6, 2, 1, "", "model_config"]], "graphdoc.prompts.DocGeneratorHelperSignature": [[6, 2, 1, "", "database_schema"], [6, 2, 1, "", "documented_schema"], [6, 2, 1, "", "model_config"]], "graphdoc.prompts.DocGeneratorPrompt": [[6, 3, 1, "", "compare_metrics"], [6, 3, 1, "", "evaluate_documentation_quality"], [6, 3, 1, "", "evaluate_metric"], [6, 3, 1, "", "format_metric"]], "graphdoc.prompts.DocGeneratorSignature": [[6, 2, 1, "", "database_schema"], [6, 2, 1, "", "documented_schema"], [6, 2, 1, "", "model_config"]], "graphdoc.prompts.DocQualityDemonstrationSignature": [[6, 2, 1, "", "category"], [6, 2, 1, "", "database_schema"], [6, 2, 1, "", "model_config"], [6, 2, 1, "", "rating"]], "graphdoc.prompts.DocQualityPrompt": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "compare_metrics"], [6, 3, 1, "", "evaluate_metric"], [6, 3, 1, "", "format_metric"]], "graphdoc.prompts.DocQualitySignature": [[6, 2, 1, "", "category"], [6, 2, 1, "", "database_schema"], [6, 2, 1, "", "model_config"], [6, 2, 1, "", "rating"]], "graphdoc.prompts.PromptFactory": [[6, 3, 1, "", "single_prompt"]], "graphdoc.prompts.SinglePrompt": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "compare_metrics"], [6, 3, 1, "", "evaluate_evalset"], [6, 3, 1, "", "evaluate_metric"], [6, 3, 1, "", "format_metric"]], "graphdoc.prompts.schema_doc_generation": [[6, 1, 1, "", "BadDocGeneratorSignature"], [6, 1, 1, "", "DocGeneratorHelperSignature"], [6, 1, 1, "", "DocGeneratorPrompt"], [6, 1, 1, "", "DocGeneratorSignature"], [6, 4, 1, "", "doc_gen_factory"]], "graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature": [[6, 2, 1, "", "database_schema"], [6, 2, 1, "", "documented_schema"], [6, 2, 1, "", "model_config"]], "graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature": [[6, 2, 1, "", "database_schema"], [6, 2, 1, "", "documented_schema"], [6, 2, 1, "", "model_config"]], "graphdoc.prompts.schema_doc_generation.DocGeneratorPrompt": [[6, 3, 1, "", "compare_metrics"], [6, 3, 1, "", "evaluate_documentation_quality"], [6, 3, 1, "", "evaluate_metric"], [6, 3, 1, "", "format_metric"]], "graphdoc.prompts.schema_doc_generation.DocGeneratorSignature": [[6, 2, 1, "", "database_schema"], [6, 2, 1, "", "documented_schema"], [6, 2, 1, "", "model_config"]], "graphdoc.prompts.schema_doc_quality": [[6, 1, 1, "", "DocQualityDemonstrationSignature"], [6, 1, 1, "", "DocQualityPrompt"], [6, 1, 1, "", "DocQualitySignature"], [6, 4, 1, "", "doc_quality_factory"]], "graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature": [[6, 2, 1, "", "category"], [6, 2, 1, "", "database_schema"], [6, 2, 1, "", "model_config"], [6, 2, 1, "", "rating"]], "graphdoc.prompts.schema_doc_quality.DocQualityPrompt": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "compare_metrics"], [6, 3, 1, "", "evaluate_metric"], [6, 3, 1, "", "format_metric"]], "graphdoc.prompts.schema_doc_quality.DocQualitySignature": [[6, 2, 1, "", "category"], [6, 2, 1, "", "database_schema"], [6, 2, 1, "", "model_config"], [6, 2, 1, "", "rating"]], "graphdoc.prompts.single_prompt": [[6, 1, 1, "", "SinglePrompt"]], "graphdoc.prompts.single_prompt.SinglePrompt": [[6, 3, 1, "", "__init__"], [6, 3, 1, "", "compare_metrics"], [6, 3, 1, "", "evaluate_evalset"], [6, 3, 1, "", "evaluate_metric"], [6, 3, 1, "", "format_metric"]], "graphdoc.train": [[7, 1, 1, "", "DocGeneratorTrainer"], [7, 1, 1, "", "DocQualityTrainer"], [7, 1, 1, "", "SinglePrompt"], [7, 1, 1, "", "SinglePromptTrainer"], [7, 1, 1, "", "TrainerFactory"], [7, 0, 0, "-", "doc_generator_trainer"], [7, 0, 0, "-", "doc_quality_trainer"], [7, 4, 1, "", "optimizer_class"], [7, 4, 1, "", "optimizer_compile"], [7, 0, 0, "-", "optimizers"], [7, 0, 0, "-", "single_prompt_trainer"]], "graphdoc.train.DocGeneratorTrainer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "_calculate_average_score"], [7, 3, 1, "", "evaluate_training"], [7, 3, 1, "", "evaluation_metrics"], [7, 3, 1, "", "train"]], "graphdoc.train.DocQualityTrainer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "evaluate_training"], [7, 3, 1, "", "evaluation_metrics"], [7, 3, 1, "", "train"]], "graphdoc.train.SinglePrompt": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "compare_metrics"], [7, 3, 1, "", "evaluate_evalset"], [7, 3, 1, "", "evaluate_metric"], [7, 3, 1, "", "format_metric"]], "graphdoc.train.SinglePromptTrainer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "evaluate_training"], [7, 3, 1, "", "evaluation_metrics"], [7, 3, 1, "", "train"]], "graphdoc.train.TrainerFactory": [[7, 3, 1, "", "single_trainer"]], "graphdoc.train.doc_generator_trainer": [[7, 1, 1, "", "DocGeneratorTrainer"]], "graphdoc.train.doc_generator_trainer.DocGeneratorTrainer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "_calculate_average_score"], [7, 3, 1, "", "evaluate_training"], [7, 3, 1, "", "evaluation_metrics"], [7, 3, 1, "", "train"]], "graphdoc.train.doc_quality_trainer": [[7, 1, 1, "", "DocQualityTrainer"]], "graphdoc.train.doc_quality_trainer.DocQualityTrainer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "evaluate_training"], [7, 3, 1, "", "evaluation_metrics"], [7, 3, 1, "", "train"]], "graphdoc.train.optimizers": [[7, 4, 1, "", "optimizer_class"], [7, 4, 1, "", "optimizer_compile"]], "graphdoc.train.single_prompt_trainer": [[7, 1, 1, "", "SinglePromptTrainer"]], "graphdoc.train.single_prompt_trainer.SinglePromptTrainer": [[7, 3, 1, "", "__init__"], [7, 3, 1, "", "evaluate_training"], [7, 3, 1, "", "evaluation_metrics"], [7, 3, 1, "", "train"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function", "5": "py:data"}, "terms": {"": [0, 6, 11, 13], "0": [0, 1, 6, 8, 11, 12, 13], "1": [0, 1, 2, 4, 5, 6, 7, 11, 12, 13], "2": [0, 1, 2, 4, 6, 8, 11, 12, 13], "25": [0, 4, 11], "3": [0, 1, 2, 4, 5, 6, 11, 12, 13], "4": [0, 1, 2, 4, 6, 11, 12, 13], "42": [0, 11], "A": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13], "At": 8, "If": [0, 1, 5, 6, 7, 11, 12, 13], "It": 8, "NOT": [0, 6, 11, 13], "ONE": [0, 1, 10, 11, 12, 14], "The": [0, 1, 2, 3, 5, 6, 7, 11, 12, 13], "These": [0, 1, 2, 11, 12], "_": [0, 1, 2, 10, 11, 12, 14], "__init__": [0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14], "_calculate_average_scor": [0, 7, 10, 11, 14], "_check_node_typ": [0, 1, 10, 11, 12, 14], "_env_constructor": [0, 1, 10, 11, 12, 14], "_hf_schema_object_column": [0, 1, 10, 11, 12, 14], "_local": [0, 1, 11, 12], "_predict": [0, 5, 10, 11, 14], "_retry_by_r": [0, 5, 10, 11, 14], "abc": [0, 1, 2, 6, 7, 11, 12, 13], "abov": [0, 6, 11, 13], "abstract": [0, 1, 2, 6, 7, 11, 12, 13], "account": [0, 6, 7, 11, 13], "accuraci": [0, 6, 11, 13], "across": [0, 6, 11, 13], "addit": [0, 6, 11, 13], "adher": [0, 6, 11, 13], "after": [0, 5, 11], "aggreg": [0, 4, 11], "aid": [0, 6, 11, 13], "all": [0, 1, 6, 11, 12, 13], "allow": [0, 6, 11, 13], "almost": [0, 1, 2, 6, 11, 12, 13], "almost_perfect": [0, 1, 10, 11, 12, 14], "alreadi": [0, 1, 11, 12], "also": [0, 1, 11, 12], "ambigu": [0, 6, 11, 13], "an": [0, 1, 2, 6, 7, 8, 11, 12, 13], "analyz": [0, 6, 11, 13], "ani": [0, 1, 2, 3, 4, 6, 7, 8, 11, 12, 13], "anoth": [0, 6, 7, 11, 13], "apach": 8, "api_kei": [0, 5, 11], "applic": [0, 1, 11, 12], "ar": [0, 1, 2, 4, 5, 6, 7, 11, 12, 13], "architect": [0, 6, 11, 13], "arg": [0, 11], "argument": [0, 1, 2, 3, 7, 11, 12], "around": [0, 6, 11, 13], "assum": [0, 4, 11], "ast": [0, 1, 11, 12], "authent": [0, 1, 3, 11, 12], "automat": [0, 6, 11, 13], "avail": [0, 1, 11, 12], "averag": [0, 7, 11], "avoid": [0, 6, 11, 13], "bad_doc_gen": [6, 13], "baddocgeneratorsignatur": [0, 6, 10, 11, 13, 14], "base": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13], "base_evalu": [0, 7, 11], "base_metr": [0, 6, 7, 11, 13], "base_model": [0, 7, 11], "basi": [0, 5, 11], "batch": [0, 4, 11], "better": [0, 6, 7, 11, 13], "blank": [0, 1, 10, 11, 12, 14], "bool": [0, 1, 5, 6, 7, 11, 12, 13], "boolean": [0, 6, 11, 13], "boundari": [0, 1, 11, 12], "bridgeprotocol": [0, 6, 11, 13], "byte": [0, 6, 11, 13], "calcul": [0, 7, 11], "callabl": [0, 1, 6, 7, 11, 12, 13], "can": [0, 1, 6, 7, 8, 11, 12, 13], "cannot": [0, 1, 11, 12], "categori": [0, 1, 2, 6, 7, 10, 11, 12, 13, 14], "categories_r": [0, 1, 11, 12], "category_enum": [0, 1, 11, 12], "chain_of_thought": [0, 6, 7, 11, 13], "chainofthought": [0, 7, 11], "check": [0, 1, 5, 11, 12], "check_directory_path": [0, 1, 10, 11, 12, 14], "check_file_path": [0, 1, 10, 11, 12, 14], "check_nod": [0, 1, 11, 12], "children": [0, 1, 11, 12], "clariti": [0, 6, 11, 13], "class": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13], "classmethod": [0, 1, 11, 12], "classvar": [0, 6, 11, 13], "client": [0, 5, 11], "column": [0, 1, 6, 11, 12, 13], "command": [0, 11], "commentari": [0, 6, 11, 13], "common": 8, "compar": [0, 6, 7, 11, 13], "compare_metr": [0, 6, 7, 10, 11, 13, 14], "comparison_valu": [0, 6, 7, 11, 13], "compil": [0, 7, 11], "complet": [0, 6, 11, 13], "complex": [0, 4, 11], "compon": [0, 4, 5, 6, 11, 13], "concis": [0, 6, 11, 13], "config": [6, 10, 11, 13], "config_fil": [0, 11], "configdict": [0, 6, 11, 13], "configur": [0, 1, 6, 11, 12, 13], "confirm": [0, 6, 11, 13], "conform": [0, 6, 11, 13], "confus": [0, 6, 11, 13], "consid": [0, 5, 11], "consist": [0, 6, 11, 13], "construct": [0, 1, 11, 12], "constructor": [0, 1, 11, 12], "contain": [0, 1, 6, 7, 11, 12, 13], "content": [10, 14], "contract": [0, 6, 11, 13], "convert": [0, 1, 11, 12], "correct": [0, 1, 2, 6, 11, 12, 13], "correspond": [0, 1, 6, 11, 12, 13], "count": [0, 1, 11, 12], "count_description_pattern_match": [0, 1, 10, 11, 12, 14], "coupl": 8, "creat": [0, 1, 2, 11, 12], "critic": [0, 1, 11, 12], "csv": [0, 7, 11], "current": [0, 6, 11, 13], "custom": [0, 1, 6, 11, 12, 13], "data": [0, 10, 11, 14], "databas": [0, 4, 5, 6, 11, 13], "database_schema": [0, 1, 2, 4, 5, 6, 10, 11, 12, 13, 14], "dataset": [0, 1, 2, 11, 12], "debug": [0, 1, 11, 12], "decompos": [0, 5, 11], "default": [0, 1, 11, 12], "default_node_typ": [0, 1, 10, 11, 12, 14], "defin": [0, 1, 2, 6, 11, 12, 13], "describ": [0, 6, 11, 13], "descript": [0, 1, 5, 6, 11, 12, 13], "detail": [0, 6, 11, 13], "determin": [0, 5, 6, 7, 11, 13], "develop": [0, 6, 11, 13], "dict": [0, 1, 2, 3, 4, 6, 7, 11, 12, 13], "dictionari": [0, 1, 2, 3, 6, 7, 11, 12, 13], "difficulti": [0, 1, 11, 12], "directli": [0, 11], "directori": [0, 1, 8, 11, 12], "directory_path": [0, 1, 11, 12], "displai": [0, 6, 7, 11, 13], "display_progress": [0, 6, 7, 11, 13], "display_t": [0, 6, 7, 11, 13], "do": [0, 1, 6, 11, 12, 13], "doc": [0, 11], "doc_gen_factori": [0, 6, 11, 13], "doc_gen_help": [6, 13], "doc_generator_ev": [0, 10, 11], "doc_generator_eval_from_yaml": [0, 10, 11, 14], "doc_generator_modul": [0, 10], "doc_generator_module_from_dict": [0, 10, 11, 14], "doc_generator_module_from_yaml": [0, 10, 11, 14], "doc_generator_train": [0, 10], "doc_qual": [0, 6, 11, 13], "doc_quality_demo": [0, 6, 11, 13], "doc_quality_factori": [0, 6, 11, 13], "doc_quality_train": [0, 10], "docgeneratorevalu": [0, 4, 10, 11, 14], "docgeneratorhelpersignatur": [0, 6, 10, 11, 13, 14], "docgeneratormodul": [0, 4, 5, 10, 11, 14], "docgeneratorprompt": [0, 5, 6, 7, 10, 11, 13, 14], "docgeneratorsignatur": [0, 6, 10, 11, 13, 14], "docgeneratortrain": [0, 7, 10, 11, 14], "docqualitydemonstrationsignatur": [0, 6, 10, 11, 13, 14], "docqualityprompt": [0, 4, 6, 7, 10, 11, 13, 14], "docqualitysignatur": [0, 6, 10, 11, 13, 14], "docqualitytrain": [0, 7, 10, 11, 14], "document": [0, 1, 2, 4, 5, 6, 7, 11, 12, 13], "document_full_schema": [0, 5, 10, 11, 14], "documented_schema": [0, 1, 2, 4, 5, 6, 10, 11, 12, 13, 14], "documentnod": [0, 1, 11, 12], "doe": [0, 1, 6, 7, 11, 12, 13], "domain": [0, 6, 11, 13], "dspy": [0, 1, 2, 3, 5, 6, 7, 11, 12, 13], "dspy_data": [0, 1], "dspy_data_help": [0, 1], "dspydatahelp": [0, 1, 2, 10, 11, 12, 14], "due": [0, 6, 11, 13], "each": [0, 4, 5, 6, 11, 13], "effect": [0, 6, 11, 13], "either": [0, 6, 11, 13], "empti": [0, 1, 5, 11, 12], "enough": [0, 6, 11, 13], "ensur": [0, 6, 11, 13], "entiti": [0, 6, 11, 13], "enum": [0, 1, 6, 11, 12, 13], "enum_schema": [0, 1, 10, 11, 12, 14], "enumtypedefinitionnod": [0, 1, 11, 12], "enumvaluedefinitionnod": [0, 1, 11, 12], "environ": [0, 1, 3, 11, 12], "equal": [0, 1, 11, 12], "error": [0, 1, 11, 12], "etc": [0, 6, 7, 11, 13], "eval": [0, 10, 11], "eval_config": [0, 11], "evalaut": [0, 6, 7, 11, 13], "evalset": [0, 4, 7, 11], "evalset_ratio": [0, 11], "evalu": [0, 4, 6, 7, 10, 11, 13, 14], "evaluate_documentation_qu": [0, 6, 10, 11, 13, 14], "evaluate_evalset": [0, 6, 7, 10, 11, 13, 14], "evaluate_metr": [0, 6, 7, 10, 11, 13, 14], "evaluate_train": [0, 7, 10, 11, 14], "evaluation_metr": [0, 7, 10, 11, 14], "evaluator_prediction_field": [0, 4, 11], "even": [0, 6, 11, 13], "everi": [0, 6, 11, 13], "exampl": [1, 2, 4, 6, 7, 10, 12, 13, 14], "example_exampl": [0, 1, 2, 10, 11, 12, 14], "except": [0, 1, 11, 12], "exclud": [0, 1, 6, 11, 12, 13], "exist": [0, 6, 11, 13], "expect": [0, 6, 11, 13], "experi": [0, 7, 11], "expirement_nam": [0, 5, 11], "extens": [0, 4, 11], "face": [0, 1, 11, 12], "factori": [6, 13], "factual": [0, 6, 11, 13], "fail": [0, 5, 11], "fals": [0, 5, 6, 7, 11, 13], "featur": [0, 1, 11, 12], "feedback": 8, "field": [0, 1, 2, 5, 6, 7, 11, 12, 13], "file": [0, 1, 7, 11, 12], "file_path": [0, 1, 11, 12], "fill": [0, 1, 5, 11, 12], "fill_empty_descript": [0, 1, 5, 10, 11, 12, 14], "filter": [0, 1, 2, 11, 12], "filter_arg": [0, 1, 2, 11, 12], "find": 8, "flexibl": [0, 4, 6, 7, 11, 13], "float": [0, 6, 7, 11, 13], "focu": [0, 6, 11, 13], "folder": [0, 1, 11, 12], "folder_of_folders_to_dataset": [0, 1, 10, 11, 12, 14], "folder_path": [0, 1, 11, 12], "folder_to_dataset": [0, 1, 10, 11, 12, 14], "follow": [0, 5, 11], "format": [0, 1, 2, 6, 7, 11, 12, 13], "format_metr": [0, 6, 7, 10, 11, 13, 14], "formatted_signatur": [0, 1, 2, 10, 11, 12, 14], "forward": [0, 4, 5, 10, 11, 14], "four": [0, 1, 10, 11, 12, 14], "free": [0, 6, 11, 13], "from": [0, 1, 3, 6, 7, 11, 12, 13], "from_dict": [0, 1, 10, 11, 12, 14], "from_str": [0, 1, 10, 11, 12, 14], "from_valu": [0, 1, 10, 11, 12, 14], "full": [0, 1, 6, 11, 12, 13], "full_schema": [0, 1, 10, 11, 12, 14], "function": [0, 1, 6, 11, 12, 13], "futur": [0, 4, 11], "gener": [0, 1, 2, 4, 5, 6, 7, 8, 11, 12, 13], "generation_data_help": [0, 1], "generationdatahelp": [0, 1, 2, 10, 11, 12, 14], "generator_prediction_field": [0, 4, 11], "get": [0, 1, 8, 11, 12], "get_categori": [0, 1, 10, 11, 12, 14], "get_path": [0, 1, 10, 11, 12, 14], "get_rat": [0, 1, 10, 11, 12, 14], "given": [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13], "global": [0, 11], "gold": [0, 1, 11, 12], "gold_nod": [0, 1, 11, 12], "graph_doc": [0, 1, 11, 12], "graphql": [0, 1, 5, 6, 8, 11, 12, 13], "ha": [0, 6, 11, 13], "hallucin": [0, 6, 11, 13], "handl": [0, 1, 11, 12], "have": [0, 1, 6, 8, 11, 12, 13], "help": 8, "helper": [0, 2, 3, 10, 11, 14], "how": [0, 1, 2, 11, 12], "hug": [0, 1, 11, 12], "i": [0, 1, 2, 3, 5, 6, 7, 8, 11, 12, 13], "id": [0, 1, 3, 6, 11, 12, 13], "implement": [0, 6, 7, 11, 13], "import": [0, 4, 11], "improv": [0, 6, 11, 13], "inaccur": [0, 6, 11, 13], "includ": [0, 4, 7, 11], "incorrect": [0, 1, 2, 6, 10, 11, 12, 13, 14], "index": 8, "individu": [0, 5, 11], "infer": [0, 1, 2, 11, 12], "info": [0, 1, 11, 12], "inform": [0, 6, 11, 13], "initi": [0, 5, 6, 7, 11, 13], "input": [0, 1, 2, 11, 12], "inputfield": [0, 1, 2, 5, 11, 12], "instanc": [0, 6, 7, 11, 13], "instanti": [0, 6, 11, 13], "instruct": [0, 1, 2, 11, 12], "int": [0, 1, 4, 5, 6, 7, 11, 12, 13], "intention": [0, 6, 11, 13], "interact": 8, "interestr": [0, 6, 11, 13], "interpret": [0, 6, 11, 13], "issu": 8, "its": [0, 1, 6, 11, 12, 13], "just": 8, "keep": [0, 1, 6, 11, 12, 13], "kei": [0, 1, 6, 10, 11, 12, 13, 14], "keyword": [0, 7, 11], "kwarg": [0, 7, 11], "languag": [0, 1, 6, 11, 12, 13], "latest": [0, 1, 3, 11, 12], "latest_model_vers": [0, 1, 3, 10, 11, 12, 14], "lead": [0, 6, 11, 13], "least": [0, 6, 11, 13], "level": [0, 1, 11, 12], "licens": 8, "line": [0, 11], "list": [0, 1, 2, 4, 6, 7, 11, 12, 13], "liter": [0, 1, 2, 6, 7, 11, 12, 13], "llm": [0, 6, 11, 13], "load": [0, 1, 3, 7, 11, 12], "load_model_arg": [0, 1, 3, 7, 11, 12], "load_yaml_config": [0, 1, 10, 11, 12, 14], "loader": [0, 1, 11, 12], "local": [0, 8, 10, 11, 14], "localdatahelp": [0, 1, 10, 11, 12, 14], "log": [0, 1, 4, 7, 8, 10, 11, 12, 14], "log_level": [0, 1, 11, 12], "logger": [0, 11], "m": [0, 11], "mai": 8, "main": [6, 10, 13, 14], "maintain": [0, 6, 11, 13], "major": 8, "make": [0, 4, 11], "manag": 8, "map": [0, 1, 6, 7, 11, 12, 13], "mark": [0, 6, 7, 11, 13], "match": [0, 1, 5, 11, 12], "maximum": [0, 5, 11], "metadata": [0, 1, 3, 11, 12], "method": [0, 1, 6, 11, 12, 13], "metric": [0, 4, 6, 7, 11, 13], "minimum": [0, 5, 11], "mirror": [0, 6, 11, 13], "mislead": [0, 6, 11, 13], "miss": [0, 6, 11, 13], "mlflow": [0, 1, 2, 3, 4, 7, 8, 11, 12], "mlflow_config": [0, 11], "mlflow_data": [0, 1], "mlflow_data_help": [0, 1], "mlflow_data_helper_from_dict": [0, 10, 11, 14], "mlflow_data_helper_from_yaml": [0, 10, 11, 14], "mlflow_dict": [0, 11], "mlflow_experiment_nam": [0, 4, 7, 11], "mlflow_model_nam": [0, 7, 11], "mlflow_tracking_password": [0, 1, 3, 11, 12], "mlflow_tracking_uri": [0, 1, 3, 4, 7, 11, 12], "mlflow_tracking_usernam": [0, 1, 3, 11, 12], "mlflowclient": [0, 5, 11], "mlflowdatahelp": [0, 1, 3, 10, 11, 12, 14], "model": [0, 1, 2, 3, 6, 7, 11, 12, 13], "model_by_arg": [0, 1, 3, 10, 11, 12, 14], "model_by_name_and_vers": [0, 1, 3, 10, 11, 12, 14], "model_by_uri": [0, 1, 3, 10, 11, 12, 14], "model_config": [0, 6, 10, 11, 13, 14], "model_nam": [0, 1, 3, 11, 12], "model_signatur": [0, 1, 2, 3, 10, 11, 12, 14], "model_uri": [0, 1, 3, 11, 12], "model_vers": [0, 1, 3, 11, 12], "modelsignatur": [0, 1, 2, 3, 11, 12], "modifi": [0, 6, 11, 13], "modul": [8, 10, 14], "module_config": [0, 11], "module_dict": [0, 11], "more": [0, 4, 11], "must": [0, 1, 6, 7, 11, 12, 13], "name": [0, 1, 3, 6, 7, 11, 12, 13], "namehash": [0, 6, 11, 13], "necessari": [0, 6, 7, 11, 13], "new": [0, 1, 11, 12], "new_column_valu": [0, 1, 11, 12], "new_table_valu": [0, 1, 11, 12], "new_valu": [0, 1, 11, 12], "node": [0, 1, 11, 12], "none": [0, 1, 2, 3, 5, 6, 7, 11, 12, 13], "num_thread": [0, 6, 7, 11, 13], "number": [0, 1, 5, 6, 7, 11, 12, 13], "object": [0, 1, 2, 3, 6, 7, 11, 12, 13], "objecttypedefinitionnod": [0, 1, 11, 12], "obviosli": [0, 6, 11, 13], "one": [0, 6, 11, 13], "onli": [0, 1, 6, 11, 12, 13], "open": 8, "optim": [0, 6, 10, 11, 13], "optimized_evalu": [0, 7, 11], "optimized_metr": [0, 6, 7, 11, 13], "optimized_model": [0, 7, 11], "optimizer_class": [0, 7, 10, 11, 14], "optimizer_compil": [0, 7, 10, 11, 14], "optimizer_kwarg": [0, 7, 11], "optimizer_typ": [0, 7, 11], "option": [0, 1, 2, 6, 7, 11, 12, 13], "order": [0, 1, 3, 11, 12], "origin": [0, 5, 11], "other": [0, 6, 7, 11, 13], "otherwis": [0, 6, 7, 11, 13], "our": [0, 1, 2, 11, 12], "out": [0, 1, 5, 11, 12], "output": [0, 1, 2, 6, 11, 12, 13], "outputfield": [0, 1, 2, 5, 11, 12], "overal": [0, 6, 7, 11, 13], "overall_scor": [0, 6, 7, 11, 13], "own": [0, 6, 11, 13], "packag": [8, 10, 14], "page": 8, "param": [0, 1, 3, 6, 7, 11, 12, 13], "paramet": [0, 1, 2, 3, 5, 6, 7, 11, 12, 13], "parent": [0, 6, 11, 13], "pars": [0, 1, 5, 11, 12], "parse_object": [0, 1, 11, 12], "parse_objects_from_full_schema_object": [0, 1, 10, 11, 12, 14], "parse_schema_from_fil": [0, 1, 10, 11, 12, 14], "parser": [0, 10, 11, 14], "pass": [0, 1, 6, 7, 11, 12, 13], "password": [0, 1, 3, 11, 12], "path": [0, 1, 3, 4, 11, 12], "pathlib": [0, 1, 11, 12], "pattern": [0, 1, 11, 12], "per": [0, 5, 6, 7, 11, 13], "per_category_scor": [0, 6, 11, 13], "percentag": [0, 6, 11, 13], "perfect": [0, 1, 2, 6, 10, 11, 12, 13, 14], "perform": [0, 5, 11], "phrase": [0, 6, 11, 13], "pleas": [0, 6, 11, 13], "poor": [0, 1, 2, 6, 11, 12, 13], "poor_but_correct": [0, 1, 10, 11, 12, 14], "pr": 8, "precis": [0, 6, 11, 13], "pred": [0, 6, 11, 13], "predict": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14], "prediction_exampl": [0, 1, 2, 10, 11, 12, 14], "present": [0, 6, 11, 13], "program": [0, 6, 11, 13], "progress": [0, 6, 7, 11, 13], "prompt": [0, 1, 2, 5, 7, 10, 11, 12, 14], "prompt_class": [0, 6, 11, 13], "prompt_dict": [0, 11], "prompt_metr": [0, 6, 7, 11, 13], "prompt_signatur": [0, 1, 2, 10, 11, 12, 14], "prompt_typ": [0, 6, 7, 11, 13], "promptfactori": [0, 6, 10, 11, 13, 14], "proper": [0, 6, 11, 13], "proportion": [0, 11], "protocol": [0, 6, 11, 13], "provid": [0, 1, 6, 7, 11, 12, 13], "pydant": [0, 6, 11, 13], "python": [0, 11], "qualiti": [0, 1, 2, 4, 5, 6, 11, 12, 13], "quality_data_help": [0, 1], "qualitydatahelp": [0, 1, 2, 10, 11, 12, 14], "qualnam": [0, 1, 11, 12], "question": 8, "rais": [0, 1, 11, 12], "rate": [0, 1, 2, 4, 5, 6, 10, 11, 12, 13, 14], "rating_enum": [0, 1, 11, 12], "rating_threshold": [0, 5, 11], "reach": 8, "readable_valu": [0, 4, 11], "recurs": [0, 1, 11, 12], "refer": [0, 6, 11, 13], "refrain": [0, 6, 11, 13], "relat": [0, 1, 2, 11, 12], "remain": [0, 1, 2, 11, 12], "remov": [0, 1, 2, 11, 12], "report": [0, 6, 11, 13], "represent": [0, 1, 11, 12], "request": [0, 6, 11, 13], "requir": [0, 6, 11, 13], "resolv": [0, 1, 11, 12], "result": [0, 4, 6, 7, 11, 13], "retri": [0, 5, 11], "retry_limit": [0, 5, 11], "return": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13], "room": [0, 6, 11, 13], "root": 8, "rtype": [0, 1, 5, 6, 7, 11, 12, 13], "run": [0, 1, 3, 8, 11, 12], "run_id": [0, 1, 3, 11, 12], "run_paramet": [0, 1, 3, 10, 11, 12, 14], "safeload": [0, 1, 11, 12], "save": [0, 1, 3, 7, 11, 12], "save_model": [0, 1, 3, 7, 10, 11, 12, 14], "scalar": [0, 6, 11, 13], "scalarnod": [0, 1, 11, 12], "scatter": [0, 6, 11, 13], "schema": [0, 4, 5, 6, 8, 10, 11, 13, 14], "schema_": [0, 1, 11, 12], "schema_ast": [0, 1, 10, 11, 12, 14], "schema_directory_path": [0, 1, 11, 12], "schema_doc_gener": [0, 10, 11, 14], "schema_doc_qu": [0, 10, 11, 14], "schema_equality_check": [0, 1, 10, 11, 12, 14], "schema_fil": [0, 1, 11, 12], "schema_nam": [0, 1, 10, 11, 12, 14], "schema_object": [0, 1, 11, 12], "schema_object_from_fil": [0, 1, 10, 11, 12, 14], "schema_objects_from_fold": [0, 1, 10, 11, 12, 14], "schema_objects_from_folder_of_fold": [0, 1, 10, 11, 12, 14], "schema_objects_to_dataset": [0, 1, 10, 11, 12, 14], "schema_str": [0, 1, 10, 11, 12, 14], "schema_typ": [0, 1, 10, 11, 12, 14], "schemacategori": [0, 1, 10, 11, 12, 14], "schemacategorypath": [0, 1, 10, 11, 12, 14], "schemacategoryratingmap": [0, 1, 10, 11, 12, 14], "schemaobject": [0, 1, 10, 11, 12, 14], "schemar": [0, 1, 10, 11, 12, 14], "schematyp": [0, 1, 10, 11, 12, 14], "score": [0, 6, 7, 11, 13], "script": 8, "search": 8, "secur": [0, 6, 11, 13], "see": [0, 11], "seed": [0, 11], "server": [0, 1, 3, 7, 8, 11, 12], "set": [0, 1, 2, 3, 4, 6, 7, 11, 12, 13], "set_auth_env_var": [0, 1, 3, 10, 11, 12, 14], "setup": [0, 1, 8, 11, 12], "setup_log": [0, 1, 10, 11, 12, 14], "sh": 8, "should": [0, 6, 11, 13], "signatur": [0, 1, 2, 3, 5, 6, 7, 11, 12, 13], "signaturemeta": [0, 1, 2, 6, 7, 11, 12, 13], "simpl": [0, 4, 11], "singl": [0, 6, 7, 11, 13], "single_prompt": [0, 10, 11, 14], "single_prompt_from_dict": [0, 10, 11, 14], "single_prompt_from_yaml": [0, 10, 11, 14], "single_prompt_train": [0, 10], "single_train": [0, 7], "single_trainer_from_dict": [0, 10, 11, 14], "single_trainer_from_yaml": [0, 10, 11, 14], "singleprompt": [0, 4, 5, 6, 7, 10, 11, 13, 14], "singleprompttrain": [0, 7, 10, 11, 14], "size": [0, 11], "smart": [0, 6, 11, 13], "so": [0, 6, 11, 13], "social": [0, 6, 11, 13], "sole": [0, 6, 11, 13], "some": [0, 6, 11, 13], "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13], "specif": [0, 7, 11], "specifi": [0, 6, 7, 11, 13], "specul": [0, 6, 11, 13], "split": [0, 11], "split_trainset": [0, 10, 11, 14], "squar": [0, 6, 11, 13], "standard": [0, 1, 6, 11, 12, 13], "start": [0, 1, 8, 11, 12], "static": [0, 1, 2, 6, 7, 11, 12, 13], "step": [0, 5, 11], "str": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13], "straightforward": [0, 6, 11, 13], "string": [0, 1, 2, 6, 11, 12, 13], "structur": [0, 1, 6, 11, 12, 13], "student": [0, 7, 11], "style": [0, 6, 11, 13], "submit": 8, "submodul": [10, 14], "subpackag": [10, 14], "support": [6, 13], "system": [0, 6, 11, 13], "tabl": [0, 1, 6, 7, 11, 12, 13], "table_schema": [0, 1, 10, 11, 12, 14], "tag": [0, 1, 11, 12], "take": [0, 4, 6, 7, 11, 13], "task": [0, 6, 11, 13], "than": [0, 6, 7, 11, 13], "thank": 8, "thi": [0, 4, 6, 7, 11, 13], "thread": [0, 6, 7, 11, 13], "three": [0, 1, 6, 10, 11, 12, 13, 14], "threshold": [0, 5, 11], "time": [0, 1, 11, 12], "to_dataset": [0, 1, 10, 11, 12, 14], "to_dict": [0, 1, 10, 11, 12, 14], "token": [0, 6, 11, 13], "tool": 8, "trace": [0, 5, 6, 7, 11, 13], "track": [0, 1, 3, 7, 8, 11, 12], "train": [0, 10, 11, 14], "trainer": [0, 7, 11], "trainer_class": 7, "trainer_config": [0, 11], "trainer_dict": [0, 11], "trainerfactori": [0, 7], "trainset": [0, 1, 2, 7, 10, 11, 12, 14], "trainset_and_evalset_from_yaml": [0, 10, 11, 14], "trainset_dict": [0, 11], "trainset_from_dict": [0, 10, 11, 14], "trainset_from_yaml": [0, 10, 11, 14], "transform": [0, 1, 2, 11, 12], "travers": [0, 1, 11, 12], "true": [0, 1, 5, 6, 7, 11, 12, 13], "tupl": [0, 7, 11], "two": [0, 1, 6, 10, 11, 12, 13, 14], "type": [0, 1, 2, 3, 5, 6, 7, 11, 12, 13], "type_enum": [0, 1, 11, 12], "type_map": [0, 1, 11, 12], "unclear": [0, 6, 11, 13], "underli": [0, 5, 6, 11, 13], "understand": [0, 6, 11, 13], "union": [0, 1, 2, 3, 6, 7, 11, 12, 13], "updat": [0, 1, 3, 11, 12], "update_auth_env_var": [0, 1, 3, 10, 11, 12, 14], "update_node_descript": [0, 1, 10, 11, 12, 14], "uri": [0, 1, 3, 7, 11, 12], "us": [0, 1, 5, 6, 7, 11, 12, 13], "usag": [0, 11], "use_env": [0, 1, 11, 12], "use_value_nam": [0, 1, 11, 12], "user": [0, 6, 11, 13], "usernam": [0, 1, 3, 11, 12], "util": [0, 1, 2, 6, 11, 12, 13], "valid": [0, 1, 5, 11, 12], "valu": [0, 1, 2, 4, 6, 7, 11, 12, 13], "value_nam": [0, 1, 11, 12], "valueerror": [0, 1, 11, 12], "variabl": [0, 1, 3, 11, 12], "verifi": [0, 6, 11, 13], "version": [0, 1, 3, 11, 12], "want": 8, "warn": [0, 1, 6, 11, 12, 13], "we": [0, 1, 2, 4, 7, 11, 12], "whether": [0, 1, 5, 6, 7, 11, 12, 13], "which": [0, 6, 7, 11, 13], "within": [0, 6, 8, 11, 13], "without": [0, 1, 6, 11, 12, 13], "workflow": 8, "wrapper": [0, 6, 11, 13], "yaml": [0, 1, 11, 12], "yaml_path": [0, 11], "yet": [0, 6, 11, 13], "you": [0, 6, 8, 11, 13], "your": [0, 6, 11, 13], "zero": [0, 1, 10, 11, 12, 14], "zero_shot_doc_gen": [6, 13]}, "titles": ["graphdoc package", "graphdoc.data package", "graphdoc.data.dspy_data package", "graphdoc.data.mlflow_data package", "graphdoc.eval package", "graphdoc.modules package", "graphdoc.prompts package", "graphdoc.train package", "GraphDoc documentation", "<no title>", "graphdoc", "graphdoc package", "graphdoc.data package", "graphdoc.prompts package", "graphdoc"], "titleterms": {"config": 0, "content": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13], "data": [1, 2, 3, 12], "doc_generator_ev": 4, "doc_generator_modul": 5, "doc_generator_train": 7, "doc_quality_train": 7, "document": 8, "dspy_data": 2, "dspy_data_help": 2, "eval": 4, "exampl": [0, 11], "generation_data_help": 2, "graphdoc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14], "helper": [1, 12], "indic": 8, "local": [1, 12], "main": [0, 11], "mlflow_data": 3, "mlflow_data_help": 3, "modul": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13], "optim": 7, "packag": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13], "parser": [1, 12], "prompt": [6, 13], "quality_data_help": 2, "schema": [1, 12], "schema_doc_gener": [6, 13], "schema_doc_qu": [6, 13], "single_prompt": [6, 13], "single_prompt_train": 7, "submodul": [0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13], "subpackag": [0, 1, 11], "tabl": 8, "train": 7}}) \ No newline at end of file diff --git a/graphdoc/docs/_build/html/source/graphdoc.data.html b/graphdoc/docs/_build/html/source/graphdoc.data.html index a904734..a347f8d 100644 --- a/graphdoc/docs/_build/html/source/graphdoc.data.html +++ b/graphdoc/docs/_build/html/source/graphdoc.data.html @@ -139,7 +139,129 @@
  • schema_objects_to_dataset()
  • -
  • Module contents
  • +
  • Module contents +
  • @@ -224,18 +346,10 @@

    Submodules
    Parameters:
    -

    file_path (Union[str, Path]) – The path to check.

    -
    -
    Raises:
    -

    ValueError – If the path does not resolve to a valid file.

    -
    -
    Returns:
    -

    None

    -
    -
    Return type:
    -

    None

    +

    file_path – The path to check. :type file_path: Union[str, Path] :raises

    +

    ValueError: If the path does not resolve to a valid file. :return: None :rtype: None

    @@ -256,7 +370,8 @@

    Submodules

    dict

    Raises:
    -

    ValueError – If the path does not resolve to a valid file or the environment variable is not set.

    +

    ValueError – If the path does not resolve to a valid file or the environment +variable is not set.

    @@ -277,16 +392,18 @@

    Submodules

    graphdoc.data.local module

    -class graphdoc.data.local.LocalDataHelper(schema_directory_path: str | ~pathlib._local.Path = PosixPath('/Users/denver/Documents/code/graph/graphdoc-mono/graphdoc/graphdoc/graphdoc/data/assets/schemas'), categories: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, ratings: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, categories_ratings: ~typing.Callable = <function SchemaCategoryRatingMapping.get_rating>)[source]
    +class graphdoc.data.local.LocalDataHelper(schema_directory_path: str | ~pathlib._local.Path | None = None, categories: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, ratings: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, categories_ratings: ~typing.Callable = <function SchemaCategoryRatingMapping.get_rating>)[source]

    Bases: object

    A helper class for loading data from a directory.

    Parameters:
      -
    • schema_directory_path (Union[str, Path]. Defaults to the path to the schemas in the graphdoc package.) – The path to the directory containing the schemas

    • +
    • schema_directory_path (Union[str, Path] Defaults to the path to the schemas in +the graphdoc package.) – The path to the directory containing the schemas

    • categories (Type[Enum]) – The categories of the schemas. Defaults to SchemaCategory.

    • ratings (Type[Enum]) – The ratings of the schemas. Defaults to SchemaRating.

    • -
    • categories_ratings – A callable that maps categories to ratings. Defaults to SchemaCategoryRatingMapping.get_rating.

    • +
    • categories_ratings – A callable that maps categories to ratings. Defaults to +SchemaCategoryRatingMapping.get_rating.

    @@ -296,13 +413,13 @@

    Submodules
    Parameters:
    -
      -
    • folder_paths (Type[Enum]) – Enum class defining folder paths, defaults to SchemaCategoryPath. Must have a get_path method.

    • -
    • parse_objects (bool) – Whether to parse the objects from the schemas

    • -
    • type_mapping – A dictionary mapping graphql-ast node values to strings

    • -
    +

    folder_paths – Enum class defining folder paths, defaults to

    +

    SchemaCategoryPath. Must have a get_path method. :type folder_paths: Type[Enum] +:param parse_objects: Whether to parse the objects from the schemas :type +parse_objects: bool :param type_mapping: A dictionary mapping graphql-ast node +values to strings

    @@ -311,14 +428,13 @@

    Submodules
    Parameters:
    -
      -
    • category (str) – The category of the schemas

    • -
    • folder_path (Union[str, Path]) – The path to the folder containing the schemas

    • -
    • parse_objects (bool) – Whether to parse the objects from the schemas

    • -
    • type_mapping (Optional[dict[type, str]]) – A dictionary mapping types to strings

    • -
    +

    category – The category of the schemas :type category: str :param

    +

    folder_path: The path to the folder containing the schemas :type folder_path: +Union[str, Path] :param parse_objects: Whether to parse the objects from the +schemas :type parse_objects: bool :param type_mapping: A dictionary mapping +types to strings :type type_mapping: Optional[dict[type, str]]

    @@ -327,19 +443,12 @@

    Submodules
    Parameters:
    -
      -
    • folder_path (Union[str, Path]) – The path to the folder containing the schemas

    • -
    • category (str) – The category of the schemas

    • -
    • rating (int) – The rating of the schemas

    • -
    -
    -
    Returns:
    -

    A dictionary of schemas

    -
    -
    Return type:
    -

    dict[str, SchemaObject]

    +

    folder_path – The path to the folder containing the schemas :type

    +

    folder_path: Union[str, Path] :param category: The category of the schemas :type +category: str :param rating: The rating of the schemas :type rating: int +:return: A dictionary of schemas :rtype: dict[str, SchemaObject]

    @@ -348,13 +457,14 @@

    Submodules
    Parameters:
    -

    folder_paths (Optional[Type[Enum]]) – Enum class defining folder paths, defaults to SchemaCategoryPath. Must have a get_path method.

    +

    folder_paths (Optional[Type[Enum]]) – Enum class defining folder paths, defaults to +SchemaCategoryPath. Must have a get_path method.

    Returns:

    Dictionary of loaded schemas

    Return type:
    -

    Union[Dict[str, SchemaObject], None]

    +

    Union[Dict[str, SchemaObject], None]

    @@ -380,24 +490,19 @@

    Submodules
    Parameters:
    -
      -
    • node (Node) – The schema node to check

    • -
    • type_mapping (Optional[dict[type, str]]) – Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES

    • -
    -
    -
    Returns:
    -

    The type of the schema node

    -
    -
    Return type:
    -

    str

    +

    node – The schema node to check :type node: Node :param type_mapping:

    +

    Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES :type +type_mapping: Optional[dict[type, str]] :return: The type of the schema node +:rtype: str

    static count_description_pattern_matching(node: Node, pattern: str) dict[str, int][source]
    -

    Counts the number of times a pattern matches a description in a node and its children.

    +

    Counts the number of times a pattern matches a description in a node and its +children.

    Parameters:
    @@ -443,61 +543,44 @@

    Submodules
    Parameters:
    -
      -
    • schema (SchemaObject) – The full schema object to parse

    • -
    • type_mapping (Optional[dict[type, str]]) – Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES

    • -
    -
    -
    Returns:
    -

    The parsed objects (tables and enums)

    -
    -
    Return type:
    -

    Union[dict, None]

    +

    schema – The full schema object to parse :type schema: SchemaObject :param

    +

    type_mapping: Custom mapping of node types to strings. Defaults to +DEFAULT_NODE_TYPES :type type_mapping: Optional[dict[type, str]] :return: The +parsed objects (tables and enums) :rtype: Union[dict, None]

    -static parse_schema_from_file(schema_file: str | Path, schema_directory_path: Path | str | None = None) DocumentNode[source]
    +static parse_schema_from_file(schema_file: str | Path, schema_directory_path: str | Path | None = None) DocumentNode[source]

    Parse a schema from a file.

    Parameters:
    -
      -
    • schema_file (str) – The name of the schema file

    • -
    • schema_directory_path (str) – A path to a directory containing schemas

    • -
    -
    -
    Returns:
    -

    The parsed schema

    -
    -
    Return type:
    -

    DocumentNode

    -
    -
    Raises:
    -

    Exception – If the schema cannot be parsed

    +

    schema_file – The name of the schema file :type schema_

    +

    file: +str +:param schema_directory_path: A path to a directory containing schemas +:type schema_directory_path: str +:return: The parsed schema +:rtype: DocumentNode +:raises Exception: If the schema cannot be parsed

    static schema_equality_check(gold_node: Node, check_node: Node) bool[source]
    -

    A method to check if two schema nodes are equal. Only checks that the schemas structures are equal, not the descriptions.

    +

    A method to check if two schema nodes are equal. Only checks that the schemas +structures are equal, not the descriptions.

    Parameters:
    -
      -
    • gold_node (Node) – The gold standard schema node

    • -
    • check_node (Node) – The schema node to check

    • -
    -
    -
    Returns:
    -

    Whether the schemas are equal

    -
    -
    Return type:
    -

    bool

    +

    gold_node – The gold standard schema node :type gold_node: Node :param

    +

    check_node: The schema node to check :type check_node: Node :return: Whether the +schemas are equal :rtype: bool

    @@ -509,12 +592,15 @@

    Submodules
    static update_node_descriptions(node: Node, new_value: str | None = None) Node[source]
    -

    Given a GraphQL node, recursively traverse the node and its children, updating all descriptions with the new value. Can also be used to remove descriptions by passing None as the new value.

    +

    Given a GraphQL node, recursively traverse the node and its children, +updating all descriptions with the new value. Can also be used to remove +descriptions by passing None as the new value.

    Parameters:
    • node (Node) – The GraphQL node to update

    • -
    • new_value (Optional[str]) – The new description value. If None, the description will be removed.

    • +
    • new_value (Optional[str]) – The new description value. If None, the description will be +removed.

    Returns:
    @@ -655,7 +741,8 @@

    Submodules
    static _hf_schema_object_columns() Features[source]
    -

    Return the columns for the graph_doc dataset, based on the SchemaObject fields.

    +

    Return the columns for the graph_doc dataset, based on the SchemaObject +fields.

    Returns:

    The columns for the graph_doc dataset

    @@ -826,6 +913,1117 @@

    Submodules

    Module contents

    +
    +
    +class graphdoc.data.DspyDataHelper[source]
    +

    Bases: ABC

    +

    Abstract class for creating data objects related to a given dspy.Signature.

    +
    +
    +static _(prompt: Predict) Signature | SignatureMeta[source]
    +

    Given a dspy.Predict object, return a dspy.Signature object.

    +
    + +
    +
    +abstract static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +abstract static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static formatted_signature(signature: Signature | SignatureMeta, example: Example) str[source]
    +

    Given a dspy.Signature and a dspy.Example, return a formatted signature as a +string.

    +
    +
    Parameters:
    +
      +
    • signature (dspy.Signature) – A dspy.Signature object.

    • +
    • example (dspy.Example) – A dspy.Example object.

    • +
    +
    +
    Returns:
    +

    A formatted signature as a string.

    +
    +
    Return type:
    +

    str

    +
    +
    +
    + +
    +
    +abstract static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +abstract static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +abstract static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +prompt_signature() Signature | SignatureMeta[source]
    +

    Given a prompt, return a dspy.Signature object.

    +
    +
    Parameters:
    +

    prompt (Any) – A prompt.

    +
    +
    +
    + +
    +
    +abstract static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.GenerationDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Generation +dspy.Signature.

    +

    The example signature is defined as: +` +database_schema: str = dspy.InputField() +documented_schema: str = dspy.OutputField() +`

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.LocalDataHelper(schema_directory_path: str | ~pathlib._local.Path | None = None, categories: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, ratings: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, categories_ratings: ~typing.Callable = <function SchemaCategoryRatingMapping.get_rating>)[source]
    +

    Bases: object

    +

    A helper class for loading data from a directory.

    +
    +
    Parameters:
    +
      +
    • schema_directory_path (Union[str, Path] Defaults to the path to the schemas in +the graphdoc package.) – The path to the directory containing the schemas

    • +
    • categories (Type[Enum]) – The categories of the schemas. Defaults to SchemaCategory.

    • +
    • ratings (Type[Enum]) – The ratings of the schemas. Defaults to SchemaRating.

    • +
    • categories_ratings – A callable that maps categories to ratings. Defaults to +SchemaCategoryRatingMapping.get_rating.

    • +
    +
    +
    +
    +
    +folder_of_folders_to_dataset(folder_paths: ~typing.Type[~enum.Enum] = <enum 'SchemaCategoryPath'>, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths – Enum class defining folder paths, defaults to

    +
    +
    +

    SchemaCategoryPath. Must have a get_path method. :type folder_paths: Type[Enum] +:param parse_objects: Whether to parse the objects from the schemas :type +parse_objects: bool :param type_mapping: A dictionary mapping graphql-ast node +values to strings

    +
    + +
    +
    +folder_to_dataset(category: str, folder_path: str | Path, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    category – The category of the schemas :type category: str :param

    +
    +
    +

    folder_path: The path to the folder containing the schemas :type folder_path: +Union[str, Path] :param parse_objects: Whether to parse the objects from the +schemas :type parse_objects: bool :param type_mapping: A dictionary mapping +types to strings :type type_mapping: Optional[dict[type, str]]

    +
    + +
    +
    +schema_objects_from_folder(category: str, rating: int, folder_path: str | Path) dict[str, SchemaObject][source]
    +

    Load schemas from a folder, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_path – The path to the folder containing the schemas :type

    +
    +
    +

    folder_path: Union[str, Path] :param category: The category of the schemas :type +category: str :param rating: The rating of the schemas :type rating: int +:return: A dictionary of schemas :rtype: dict[str, SchemaObject]

    +
    + +
    +
    +schema_objects_from_folder_of_folders(folder_paths: ~typing.Type[~enum.Enum] | None = <enum 'SchemaCategoryPath'>) Dict[str, SchemaObject] | None[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths (Optional[Type[Enum]]) – Enum class defining folder paths, defaults to +SchemaCategoryPath. Must have a get_path method.

    +
    +
    Returns:
    +

    Dictionary of loaded schemas

    +
    +
    Return type:
    +

    Union[Dict[str, SchemaObject], None]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.MlflowDataHelper(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    Bases: object

    +
    +
    +__init__(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    A helper class for loading and saving models and metadata from mlflow.

    +
    +
    Parameters:
    +

    mlflow_tracking_uri – The uri of the mlflow tracking server. :type

    +
    +
    +

    mlflow_tracking_uri: Union[str, Path] :param mlflow_tracking_username: The +username for the mlflow tracking server. :type mlflow_tracking_username: str +:param mlflow_tracking_password: The password for the mlflow tracking server. +:type mlflow_tracking_password: str

    +
    + +
    +
    +latest_model_version(model_name: str)[source]
    +

    Load the latest version of a model from mlflow.

    +
    +
    Parameters:
    +

    model_name (str) – The name of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_args(load_model_args: Dict[str, str])[source]
    +

    Given a dictionary of arguments, load a model from mlflow. Ordering is +model_by_uri, model_by_name_and_version, latest_model_version.

    +
    +
    Parameters:
    +

    load_model_args (Dict[str, str]) – A dictionary of arguments.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_name_and_version(model_name: str, model_version: str)[source]
    +

    Load a model from mlflow by name and version.

    +
    +
    Parameters:
    +

    model_name – The name of the model to load. :type model_name: str :param

    +
    +
    +

    model_version: The version of the model to load. :type model_version: str +:return: The loaded model.

    +
    + +
    +
    +model_by_uri(model_uri: str)[source]
    +

    Load a model from mlflow by uri.

    +
    +
    Parameters:
    +

    model_uri (str) – The uri of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +run_parameters(run_id: str) dict[str, Any][source]
    +

    Load the parameters of a run from mlflow.

    +
    +
    Parameters:
    +

    run_id (str) – The id of the run to load the parameters from.

    +
    +
    Returns:
    +

    The parameters of the run.

    +
    +
    +
    + +
    +
    +save_model(model: Signature, model_signature: ModelSignature, model_name: str)[source]
    +

    Save a model to mlflow.

    +
    +
    Parameters:
    +

    model – The model to save. :type model: dspy.Signature :param

    +
    +
    +

    model_signature: The signature of the model. :type model_signature: +ModelSignature :param model_name: The name of the model to save. :type +model_name: str

    +
    + +
    +
    +set_auth_env_vars()[source]
    +

    Set the authentication environment variables.

    +
    + +
    +
    +update_auth_env_vars(mlflow_tracking_username: str, mlflow_tracking_password: str)[source]
    +

    Update the authentication environment variables.

    +
    +
    Parameters:
    +
      +
    • mlflow_tracking_username (str) – The username for the mlflow tracking server.

    • +
    • mlflow_tracking_password (str) – The password for the mlflow tracking server.

    • +
    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.Parser(type_mapping: dict[type, str] | None = None)[source]
    +

    Bases: object

    +

    A class for parsing and handling of GraphQL objects.

    +
    +
    +DEFAULT_NODE_TYPES = {<class 'graphql.language.ast.DocumentNode'>: 'full schema', <class 'graphql.language.ast.EnumTypeDefinitionNode'>: 'enum schema', <class 'graphql.language.ast.EnumValueDefinitionNode'>: 'enum value', <class 'graphql.language.ast.ObjectTypeDefinitionNode'>: 'table schema'}
    +
    + +
    +
    +static _check_node_type(node: Node, type_mapping: dict[type, str] | None = None) str[source]
    +

    Check the type of a schema node.

    +
    +
    Parameters:
    +

    node – The schema node to check :type node: Node :param type_mapping:

    +
    +
    +

    Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES :type +type_mapping: Optional[dict[type, str]] :return: The type of the schema node +:rtype: str

    +
    + +
    +
    +static count_description_pattern_matching(node: Node, pattern: str) dict[str, int][source]
    +

    Counts the number of times a pattern matches a description in a node and its +children.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to count the pattern matches in

    • +
    • pattern (str) – The pattern to count the matches of

    • +
    +
    +
    Returns:
    +

    A dictionary with the counts of matches

    +
    +
    Return type:
    +

    dict[str, int]

    +
    +
    +
    + +
    +
    +static fill_empty_descriptions(node: Node, new_column_value: str = 'Description for column: {}', new_table_value: str = 'Description for table: {}', use_value_name: bool = True, value_name: str | None = None)[source]
    +

    Recursively traverse the node and its children, filling in empty descriptions +with the new column or table value. Do not update descriptions that already have +a value. Default values are provided for the new column and table descriptions.

    +
    +
    Parameters:
    +

    node – The GraphQL node to update :type node: Node :param

    +
    +
    +

    new_column_value: The new column description value :type new_column_value: str +:param new_table_value: The new table description value :type new_table_value: +str :param use_value_name: Whether to use the value name in the description +:type use_value_name: bool :param value_name: The name of the value :type +value_name: Optional[str] :return: The updated node :rtype: Node

    +
    + +
    +
    +static parse_objects_from_full_schema_object(schema: SchemaObject, type_mapping: dict[type, str] | None = None) dict[str, SchemaObject] | None[source]
    +

    Parse out all available tables from a full schema object.

    +
    +
    Parameters:
    +

    schema – The full schema object to parse :type schema: SchemaObject :param

    +
    +
    +

    type_mapping: Custom mapping of node types to strings. Defaults to +DEFAULT_NODE_TYPES :type type_mapping: Optional[dict[type, str]] :return: The +parsed objects (tables and enums) :rtype: Union[dict, None]

    +
    + +
    +
    +static parse_schema_from_file(schema_file: str | Path, schema_directory_path: str | Path | None = None) DocumentNode[source]
    +

    Parse a schema from a file.

    +
    +
    Parameters:
    +

    schema_file – The name of the schema file :type schema_

    +
    +
    +

    file: +str +:param schema_directory_path: A path to a directory containing schemas +:type schema_directory_path: str +:return: The parsed schema +:rtype: DocumentNode +:raises Exception: If the schema cannot be parsed

    +
    + +
    +
    +static schema_equality_check(gold_node: Node, check_node: Node) bool[source]
    +

    A method to check if two schema nodes are equal. Only checks that the schemas +structures are equal, not the descriptions.

    +
    +
    Parameters:
    +

    gold_node – The gold standard schema node :type gold_node: Node :param

    +
    +
    +

    check_node: The schema node to check :type check_node: Node :return: Whether the +schemas are equal :rtype: bool

    +
    + +
    +
    +static schema_object_from_file(schema_file: str | Path, category: str | None = None, rating: int | None = None) SchemaObject[source]
    +

    Parse a schema object from a file.

    +
    + +
    +
    +static update_node_descriptions(node: Node, new_value: str | None = None) Node[source]
    +

    Given a GraphQL node, recursively traverse the node and its children, +updating all descriptions with the new value. Can also be used to remove +descriptions by passing None as the new value.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to update

    • +
    • new_value (Optional[str]) – The new description value. If None, the description will be +removed.

    • +
    +
    +
    Returns:
    +

    The updated node

    +
    +
    Return type:
    +

    Node

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.QualityDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Quality +dspy.Signature.

    +

    The example signature is defined as: +``` +database_schema: str = dspy.InputField() +category: Literal[“perfect”, “almost perfect”, “poor but correct”, “incorrect”] = (

    +
    +

    dspy.OutputField()

    +
    +

    ) +rating: Literal[4, 3, 2, 1] = dspy.OutputField() +```

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaCategory(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ALMOST_PERFECT = 'almost perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor but correct'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaCategory | None[source]
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaCategoryPath(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +

    Maps schema categories to their folder names.

    +
    +
    +ALMOST_PERFECT = 'almost_perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor_but_correct'
    +
    + +
    +
    +classmethod get_path(category: SchemaCategory, folder_path: str | Path) Path | None[source]
    +

    Get the folder path for a given schema category and folder path.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding folder path

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaCategoryRatingMapping[source]
    +

    Bases: object

    +

    Maps SchemaCategory to SchemaRating.

    +
    +
    +static get_category(rating: SchemaRating) SchemaCategory[source]
    +

    Get the corresponding category for a given schema rating.

    +
    +
    Parameters:
    +

    rating – The schema rating

    +
    +
    Returns:
    +

    The corresponding category

    +
    +
    +
    + +
    +
    +static get_rating(category: SchemaCategory) SchemaRating[source]
    +

    Get the corresponding rating for a given schema category.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding rating

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaObject(key: str, category: enum.Enum | None = None, rating: enum.Enum | None = None, schema_name: str | None = None, schema_type: enum.Enum | None = None, schema_str: str | None = None, schema_ast: graphql.language.ast.Node | None = None)[source]
    +

    Bases: object

    +
    +
    +static _hf_schema_object_columns() Features[source]
    +

    Return the columns for the graph_doc dataset, based on the SchemaObject +fields.

    +
    +
    Returns:
    +

    The columns for the graph_doc dataset

    +
    +
    Return type:
    +

    Features

    +
    +
    +
    + +
    +
    +category: Enum | None = None
    +
    + +
    +
    +classmethod from_dict(data: dict, category_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, rating_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, type_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaType'>) SchemaObject[source]
    +

    Create SchemaObject from dictionary with validation.

    +
    +
    Parameters:
    +
      +
    • data – The data dictionary

    • +
    • category_enum – Custom Enum class for categories

    • +
    • rating_enum – Custom Enum class for ratings

    • +
    • type_enum – Custom Enum class for schema types

    • +
    +
    +
    +
    + +
    +
    +key: str
    +
    + +
    +
    +rating: Enum | None = None
    +
    + +
    +
    +schema_ast: Node | None = None
    +
    + +
    +
    +schema_name: str | None = None
    +
    + +
    +
    +schema_str: str | None = None
    +
    + +
    +
    +schema_type: Enum | None = None
    +
    + +
    +
    +to_dataset() Dataset[source]
    +

    Convert the SchemaObject to a Hugging Face Dataset.

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    Return type:
    +

    Dataset

    +
    +
    +
    + +
    +
    +to_dict() dict[source]
    +

    Convert the SchemaObject to a dictionary, excluding the key field.

    +
    +
    Returns:
    +

    Dictionary representation of the SchemaObject without the key

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaRating(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +FOUR = '4'
    +
    + +
    +
    +ONE = '1'
    +
    + +
    +
    +THREE = '3'
    +
    + +
    +
    +TWO = '2'
    +
    + +
    +
    +ZERO = '0'
    +
    + +
    +
    +classmethod from_value(value: str | int) SchemaRating | None[source]
    +
    + +
    + +
    +
    +class graphdoc.data.SchemaType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ENUM_SCHEMA = 'enum schema'
    +
    + +
    +
    +FULL_SCHEMA = 'full schema'
    +
    + +
    +
    +TABLE_SCHEMA = 'table schema'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaType | None[source]
    +
    + +
    + +
    +
    +graphdoc.data._env_constructor(loader: SafeLoader, node: ScalarNode) str[source]
    +

    Custom constructor for environment variables.

    +
    +
    Parameters:
    +
      +
    • loader (yaml.SafeLoader) – The YAML loader.

    • +
    • node (yaml.nodes.ScalarNode) – The node to construct.

    • +
    +
    +
    Returns:
    +

    The environment variable value.

    +
    +
    Return type:
    +

    str

    +
    +
    Raises:
    +

    ValueError – If the environment variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.data.check_directory_path(directory_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid directory.

    +
    +
    Parameters:
    +

    directory_path (Union[str, Path]) – The path to check.

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid directory.

    +
    +
    Returns:
    +

    None

    +
    +
    Return type:
    +

    None

    +
    +
    +
    + +
    +
    +graphdoc.data.check_file_path(file_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid file.

    +
    +
    Parameters:
    +

    file_path – The path to check. :type file_path: Union[str, Path] :raises

    +
    +
    +

    ValueError: If the path does not resolve to a valid file. :return: None :rtype: None

    +
    + +
    +
    +graphdoc.data.load_yaml_config(file_path: str | Path, use_env: bool = True) dict[source]
    +

    Load a YAML configuration file.

    +
    +
    Parameters:
    +
      +
    • file_path (Union[str, Path]) – The path to the YAML file.

    • +
    • use_env (bool) – Whether to use environment variables.

    • +
    +
    +
    Returns:
    +

    The YAML configuration.

    +
    +
    Return type:
    +

    dict

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid file or the environment +variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.data.schema_objects_to_dataset(schema_objects: List[SchemaObject]) Dataset[source]
    +

    Convert a list of SchemaObjects to a Hugging Face Dataset.

    +
    +
    Parameters:
    +

    schema_objects – The list of SchemaObjects

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    +
    + +
    +
    +graphdoc.data.setup_logging(log_level: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'])[source]
    +

    Setup logging for the application.

    +
    +
    Parameters:
    +

    log_level (Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]) – The log level.

    +
    +
    +
    + diff --git a/graphdoc/docs/_build/html/source/graphdoc.html b/graphdoc/docs/_build/html/source/graphdoc.html index 2672659..7746077 100644 --- a/graphdoc/docs/_build/html/source/graphdoc.html +++ b/graphdoc/docs/_build/html/source/graphdoc.html @@ -51,26 +51,241 @@
  • Subpackages
  • Submodules
  • graphdoc.main module
  • @@ -197,7 +412,129 @@

    Subpackagesschema_objects_to_dataset() -
  • Module contents
  • +
  • Module contents +
  • graphdoc.prompts package @@ -284,326 +675,2179 @@

    Submodules

    graphdoc.main module

    -
    -
    -class graphdoc.main.GraphDoc(model_args: dict, mlflow_tracking_uri: str | Path | None = None, log_level: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] = 'INFO')[source]
    -

    Bases: object

    -
    -
    -__init__(model_args: dict, mlflow_tracking_uri: str | Path | None = None, log_level: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] = 'INFO')[source]
    -

    Main entry point for the GraphDoc class. Refer to DSPy for a complete list of model arguments.

    -
    -
    Parameters:
    -
      -
    • model_args (dict) – Dictionary containing model arguments.

    • -
    • mlflow_tracking_uri (Optional[str]) – MLflow tracking URI.

    • -
    • log_level – Logging level.

    • -
    +
    +
    +graphdoc.main.log = <Logger graphdoc.main (WARNING)>[source]
    +

    Run GraphDoc as a command-line application.

    +

    This module can be run directly to train models, generate documentation, +or evaluate documentation quality.

    +
    +
    Usage:

    python -m graphdoc.main –config CONFIG_FILE [–log-level LEVEL] COMMAND [ARGS]

    +
    +
    Global Arguments:
    +
    --config PATH
    +

    Path to YAML configuration file with GraphDoc +and language model settings

    +
    +
    --log-level LEVEL
    +

    Set logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) +Default: INFO

    +
    +
    +
    +
    Commands:
    +
    train Train a prompt using a dataset
    +
    --trainer-config PATH
    +

    Path to trainer YAML configuration

    +
    +
    +
    +
    generate Generate documentation for schema files
    +
    --module-config PATH
    +

    Path to module YAML configuration

    +
    +
    --input PATH
    +

    Path to input schema file or directory

    +
    +
    --output PATH
    +

    Path to output file

    +
    +
    evaluate Evaluate documentation quality
    +
    --eval-config PATH
    +

    Path to evaluator YAML configuration

    +
    +
    +
    +
    +
    +
    +
    +

    Examples

    +

    # Train a documentation quality model +python -m graphdoc.main –config config.yaml train –trainer-config trainer_config.yaml

    +

    # Generate documentation for schemas +python -m graphdoc.main –config config.yaml generate –module-config module_config.yaml –input schema.graphql –output documented_schema.graphql

    +

    # Evaluate documentation quality +python -m graphdoc.main –config config.yaml evaluate –eval-config eval_config.yaml

    +
    +
    +
    Configuration:

    See example YAML files in the documentation for format details.

    +
    +
    +
    + + +
    +

    Module contents

    +
    +
    +class graphdoc.BadDocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database.

    +

    ### Requirements: +- Every table, entity, enum, etc. must have at least one column with a description that is obviosly incorrect. +- The documentation must be incorrect and misleading. +- The documentation should be scattered, with only some columns having documentation.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    +
    +
    +
    +class graphdoc.DocGeneratorEvaluator(generator: DocGeneratorModule | Module | Any, evaluator: DocQualityPrompt | SinglePrompt | Any, evalset: List[Example] | Any, mlflow_tracking_uri: str | Path, mlflow_experiment_name: str = 'doc_generator_eval', generator_prediction_field: str = 'documented_schema', evaluator_prediction_field: str = 'rating', readable_value: int = 25)[source]
    +

    Bases: Module

    -
    -doc_generator_eval_from_yaml(yaml_path: str | Path) DocGeneratorEvaluator[source]
    -

    Load a doc generator evaluator from a YAML file.

    +
    +__init__(generator: DocGeneratorModule | Module | Any, evaluator: DocQualityPrompt | SinglePrompt | Any, evalset: List[Example] | Any, mlflow_tracking_uri: str | Path, mlflow_experiment_name: str = 'doc_generator_eval', generator_prediction_field: str = 'documented_schema', evaluator_prediction_field: str = 'rating', readable_value: int = 25)[source]
    +

    A simple module for evaluating the quality of generated documentation. We +will make this extensible to include more complex evaluation metrics in the +future.

    +

    Important: we assume that the rating values returned by the evaluator are +[1, 2, 3, 4]. We will make this more flexible in the future.

    -
    -doc_generator_module_from_dict(module_dict: dict, prompt: DocGeneratorPrompt | SinglePrompt) DocGeneratorModule[source]
    -

    Load a doc generator module from a dictionary of parameters.

    +
    +evaluate()[source]
    +

    Batches the evaluation set and logs the results to mlflow.

    +
    + +
    +
    +forward(database_schema: str) dict[str, Any][source]
    +

    Takes a database schema, documents it, and then evaluates each component and +the aggregate.

    +
    + +
    + +
    +
    +class graphdoc.DocGeneratorHelperSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums.

    +

    ### Requirements: +- If the field is unclear, and the documentation result is ambiguous, request additional information: “WARNING: Please provide additional information to avoid confusion”. +- Utilize only the verified information from the schema to ensure accuracy. +- Descriptions should be factual, straightforward, and avoid any speculative language. +- Refrain from using the phrase “in the { table } table” within your descriptions. +- Ensure that the documentation adheres to standard schema formatting without modifying the underlying schema structure.

    +

    ### Formatting: +- Maintain consistency with the existing documentation style and structure. +- Focus on clarity and precision to aid developers and system architects in understanding the schema’s components effectively.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.DocGeneratorModule(prompt: DocGeneratorPrompt | SinglePrompt, retry: bool = True, retry_limit: int = 1, rating_threshold: int = 3, fill_empty_descriptions: bool = True)[source]
    +

    Bases: Module

    +
    +
    +__init__(prompt: DocGeneratorPrompt | SinglePrompt, retry: bool = True, retry_limit: int = 1, rating_threshold: int = 3, fill_empty_descriptions: bool = True) None[source]
    +

    Initialize the DocGeneratorModule. A module for generating documentation for +a given GraphQL schema. Schemas are decomposed and individually used to generate +documentation, with a quality check after each generation.

    -
    {

    “retry”: true, -“retry_limit”: 1, -“rating_threshold”: 3, -“fill_empty_descriptions”: true

    +
    signature fields are:
      +
    • database_schema: str = dspy.InputField()

    • +
    • documented_schema: str = dspy.OutputField()

    • +
    -

    }

    Parameters:
      -
    • module_dict (dict) – Dictionary containing module parameters.

    • -
    • prompt (DocGeneratorPrompt) – The prompt to use for this module.

    • +
    • prompt (DocGeneratorPrompt) – The prompt to use for generating documentation.

    • +
    • retry (bool) – Whether to retry the generation if the quality check fails.

    • +
    • retry_limit (int) – The maximum number of retries.

    • +
    • rating_threshold (int) – The minimum rating for a generated document to be +considered valid.

    -
    Returns:
    -

    A DocGeneratorModule object.

    -
    -
    Return type:
    -

    DocGeneratorModule

    -
    -
    -doc_generator_module_from_yaml(yaml_path: str | Path) DocGeneratorModule[source]
    -

    Load a doc generator module from a YAML file.

    -
    -
    prompt:

    prompt: base_doc_gen # Which prompt signature to use -class: DocGeneratorPrompt # Must be a child of SinglePrompt (we will use an enum to map this) -type: chain_of_thought # The type of prompt to use (predict, chain_of_thought) -metric: rating # The type of metric to use (rating, category) -load_from_mlflow: false # Whether to load the prompt from an MLFlow URI -model_uri: null # The tracking URI for MLflow -model_name: null # The name of the model in MLflow -model_version: null # The version of the model in MLflow -prompt_metric: true # Whether another prompt is used to calculate the metric (in which case we must also load that prompt)

    +
    +_predict(database_schema: str) Prediction[source]
    +

    Given a database schema, generate a documented schema. Performs the following +steps:

    +
      +
    • Check that the graphql is valid

    • +
    • Fill the empty descriptions (if fill_empty_descriptions is True)

    • +
    • Generate the documentation

    • +
    • Check that the generated schema is valid

    • +
    • Check that the generated schema matches the original schema

    • +
    +
    +
    Parameters:
    +

    database_schema (str) – The database schema to generate documentation for.

    -
    prompt_metric:

    prompt: doc_quality # The prompt to use to calculate the metric -class: DocQualityPrompt # The class of the prompt to use to calculate the metric -type: predict # The type of prompt to use to calculate the metric -metric: rating # The metric to use to calculate the metric -load_from_mlflow: false # Whether to load the prompt from an MLFlow URI -model_uri: null # The tracking URI for MLflow -model_name: null # The name of the model in MLflow -model_version: null # The version of the model in MLflow

    +
    Returns:
    +

    The generated documentation.

    -
    module:

    retry: true # Whether to retry the generation if the quality check fails -retry_limit: 1 # The maximum number of retries -rating_threshold: 3 # The rating threshold for the quality check -fill_empty_descriptions: true # Whether to fill the empty descriptions in the schema

    +
    Return type:
    +

    dspy.Prediction

    -
    -classmethod from_dict(config_dict: dict) GraphDoc[source]
    -

    Create a GraphDoc object from a dictionary of parameters.

    -
    -
    {
    -
    “graphdoc”: {

    “log_level”: “INFO”, -“mlflow_tracking_uri”: “http://localhost:5001

    +
    +_retry_by_rating(database_schema: str) str[source]
    +

    Retry the generation if the quality check fails. Rating threshold is +determined at initialization.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    -

    }, -“language_model”: {

    -
    -

    “model”: “openai/gpt-4o”, -“api_key”: “!env OPENAI_API_KEY”,

    -
    -

    }

    +

    database_schema: str :return: The generated documentation. :rtype: str

    +
    + +
    +
    +document_full_schema(database_schema: str, trace: bool = False, client: MlflowClient | None = None, expirement_name: str | None = None, api_key: str | None = None) Prediction[source]
    +

    Given a database schema, parse out the underlying components and document on +a per-component basis.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    -

    }

    +

    database_schema: str :return: The generated documentation. :rtype: +dspy.Prediction

    -
    -classmethod from_yaml(yaml_path: str | Path) GraphDoc[source]
    -

    Create a GraphDoc object from a YAML file.

    -
    -
    graphdoc:

    log_level: INFO # The log level to use

    -
    -
    language_model:

    model: openai/gpt-4o # Must be a valid dspy language model -api_key: !env OPENAI_API_KEY # Must be a valid dspy language model API key -cache: true # Whether to cache the calls to the language model

    +
    +forward(database_schema: str) Prediction[source]
    +

    Given a database schema, generate a documented schema. If retry is True, the +generation will be retried if the quality check fails.

    +
    +
    Parameters:
    +

    database_schema – The database schema to generate documentation for. :type

    +

    database_schema: str :return: The generated documentation. :rtype: +dspy.Prediction

    +
    +
    +
    +
    +class graphdoc.DocGeneratorPrompt(prompt: str | Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: DocQualityPrompt)[source]
    +

    Bases: SinglePrompt

    -
    -single_prompt_from_dict(prompt_dict: dict, prompt_metric: str | SinglePrompt) SinglePrompt[source]
    -

    Load a single prompt from a dictionary of parameters.

    -
    -
    {

    “prompt”: “doc_quality”, # Which prompt signature to use -“class”: “SchemaDocQualityPrompt”, # Must be a child of SinglePrompt (we will use an enum to map this) -“type”: “predict”, # The type of prompt to use (predict, chain_of_thought) -“metric”: “rating”, # The type of metric to use (rating, category) -“load_from_mlflow”: false, # Whether to load the prompt from an MLFlow URI -“model_uri”: null, # The tracking URI for MLflow -“model_name”: null, # The name of the model in MLflow -“model_version”: null # The version of the model in MLflow -“prompt_metric”: False # Whether another prompt is used to calculate the metric (in which case we must also load that prompt)

    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the base and optimized metrics.

    +
    +
    Parameters:
    +

    base_metrics – The base metrics. :type base_metrics: Any :param

    -

    }

    +

    optimized_metrics: The optimized metrics.

    +
    + +
    +
    +evaluate_documentation_quality(schema: Example, pred: Prediction, trace=None, scalar=True) int[source]
    +

    Evaluate the quality of the documentation. Utilizes the instantiated metric +type to evaluate the quality of the documentation.

    Parameters:
      -
    • prompt_dict (dict) – Dictionary containing prompt information.

    • -
    • prompt_metric (Union[str, SinglePrompt]) – The metric to use to calculate the metric. Can be another prompt signature or a string.

    • +
    • schema (dspy.Example) – The schema to evaluate the documentation for.

    • +
    • pred (dspy.Prediction) – The predicted documentation.

    • +
    • trace (Any) – The trace of the prediction.

    • +
    • scalar (bool) – Whether to return a squared score or the full evaluation object.

    Returns:
    -

    A SinglePrompt object.

    +

    The squared score or the full evaluation object.

    Return type:
    -

    SinglePrompt

    +

    int

    -
    -single_prompt_from_yaml(yaml_path: str | Path) SinglePrompt[source]
    -

    Load a single prompt from a YAML file.

    -
    -
    prompt:

    prompt: doc_quality # Which prompt signature to use -class: SchemaDocQualityPrompt # Must be a child of SinglePrompt (we will use an enum to map this) -type: predict # The type of prompt to use (predict, chain_of_thought) -metric: rating # The type of metric to use (rating, category) -load_from_mlflow: false # Whether to load the prompt from an MLFlow URI -model_uri: null # The tracking URI for MLflow -model_name: null # The name of the model in MLflow -model_version: null # The version of the model in MLflow -prompt_metric: False # Whether another prompt is used to calculate the metric (in which case we must also load that prompt)

    -
    -
    prompt_metric: # Follows the same format as the prompt section

    prompt: null # The prompt to use to calculate the metric -class: null # The class of the prompt to use to calculate the metric -type: null # The type of prompt to use to calculate the metric -metric: null # The metric to use to calculate the metric -load_from_mlflow: false # Whether to load the prompt from an MLFlow URI -model_uri: null # The tracking URI for MLflow -model_name: null # The name of the model in MLflow -model_version: null # The version of the model in MLflow

    -
    -
    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    Parameters:
    -

    yaml_path (str) – Path to the YAML file.

    -
    -
    Returns:
    -

    A SinglePrompt object.

    -
    -
    Return type:
    -

    SinglePrompt

    +

    example – The example to evaluate the metric on. :type example:

    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    -
    -single_trainer_from_dict(trainer_dict: dict, prompt: SinglePrompt, trainset: List[Example] = [Example({})(input_keys=None)], evalset: List[Example] = [Example({})(input_keys=None)]) SinglePromptTrainer[source]
    -

    Load a single trainer from a dictionary of parameters.

    -
    -
    {
    -
    “trainer”: {

    “class”: “DocQualityTrainer”, -“mlflow_model_name”: “doc_quality_model”, -“mlflow_experiment_name”: “doc_quality_experiment”, -“mlflow_tracking_uri”: “http://localhost:5000

    -
    -
    -

    }, -“optimizer”: {

    -
    -

    “optimizer_type”: “miprov2”, -“auto”: “light”, -“max_labeled_demos”: 2, -“max_bootstrapped_demos”: 4, -“num_trials”: 2, -“minibatch”: true

    -
    -

    },

    -
    -
    -

    }

    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Format the metric results into a dictionary.

    Parameters:
    -
      -
    • trainer_dict (dict) – Dictionary containing trainer parameters.

    • -
    • prompt (SinglePrompt) – The prompt to use for this trainer.

    • -
    -
    -
    Returns:
    -

    A SinglePromptTrainer object.

    -
    -
    Return type:
    -

    SinglePromptTrainer

    +

    examples – The examples used to evaluate the metric. :type examples:

    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results of the metric. :type results: +List :param scores: The scores of the metric. :type scores: List

    +
    + +
    +
    +class graphdoc.DocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate a precise description for the columns of the tables in the database.

    +

    ### Requirements: +- Focus solely on confirmed details from the provided schema. +- Keep the description concise and factual. +- Exclude any speculative or additional commentary. +- DO NOT return the phrase “in the { table } table” in your description.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.DocGeneratorTrainer(prompt: DocGeneratorPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: SinglePromptTrainer

    -
    -single_trainer_from_yaml(yaml_path: str | Path) SinglePromptTrainer[source]
    -

    Load a single trainer from a YAML file.

    -
    -
    data:

    hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key (with permission to access graphdoc) # TODO: we may make this public in the future -load_from_hf: false # Whether to load the dataset from Hugging Face -load_from_local: true # Whether to load the dataset from a local directory -load_local_specific_category: false # Whether to load all categories or a specific category (if load_from_local is true) -local_specific_category: perfect # The specific category to load from the dataset (if load_from_local is true) -local_parse_objects: True # Whether to parse the objects in the dataset (if load_from_local is true) -split_for_eval: True # Whether to split the dataset into trainset and evalset -trainset_size: 10 # The size of the trainset -evalset_ratio: 0.1 # The proportionate size of the evalset -data_helper_type: generation # Type of data helper to use (quality, generation)

    -
    -
    prompt:

    prompt: base_doc_gen # Which prompt signature to use -class: DocGeneratorPrompt # Must be a child of SinglePrompt (we will use an enum to map this) -type: chain_of_thought # The type of prompt to use (predict, chain_of_thought) -metric: rating # The type of metric to use (rating, category) -load_from_mlflow: false # Whether to load the prompt from an MLFlow URI -model_uri: null # The tracking URI for MLflow -model_name: null # The name of the model in MLflow -model_version: null # The version of the model in MLflow -prompt_metric: true # Whether another prompt is used to calculate the metric (in which case we must also load that prompt)

    -
    -
    prompt_metric:

    prompt: doc_quality # The prompt to use to calculate the metric -class: DocQualityPrompt # The class of the prompt to use to calculate the metric -type: predict # The type of prompt to use to calculate the metric -metric: rating # The metric to use to calculate the metric -load_from_mlflow: false # Whether to load the prompt from an MLFlow URI -model_uri: null # The tracking URI for MLflow -model_name: null # The name of the model in MLflow -model_version: null # The version of the model in MLflow

    +
    +__init__(prompt: DocGeneratorPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the DocGeneratorTrainer.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: DocGeneratorPrompt :param

    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set. :type trainset: +List[dspy.Example] :param evalset: The evaluation set. :type evalset: +List[dspy.Example]

    +
    + +
    +
    +_calculate_average_score(evaluation: dict) float[source]
    +

    Given a dictionary of evaluation results, calculate the average score.

    Parameters:
    -

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +

    evaluation (Dict[str, Any]) – The evaluation results.

    Returns:
    -

    A SinglePromptTrainer object.

    +

    The average score.

    Return type:
    -

    SinglePromptTrainer

    +

    float

    -
    -split_trainset(trainset: List[Example], evalset_ratio: float) tuple[List[Example], List[Example]][source]
    -

    Split a trainset into a trainset and evalset.

    +
    +evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    Parameters:
      -
    • trainset (List[dspy.Example]) – The trainset to split.

    • -
    • evalset_ratio (float) – The proportionate size of the evalset.

    • +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    -
    Returns:
    -

    A tuple of trainset and evalset.

    -
    -
    Return type:
    -

    tuple[List[dspy.Example], List[dspy.Example]]

    -
    -
    -trainset_and_evalset_from_yaml(yaml_path: str | Path) tuple[List[Example], List[Example]][source]
    -

    Load a trainset and evalset from a YAML file.

    -
    -
    data:

    hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key (with permission to access graphdoc) # TODO: we may make this public in the future -load_from_hf: false # Whether to load the dataset from Hugging Face -load_from_local: true # Whether to load the dataset from a local directory -load_local_specific_category: false # Whether to load all categories or a specific category (if load_from_local is true) -local_specific_category: perfect # The specific category to load from the dataset (if load_from_local is true) -local_parse_objects: True # Whether to parse the objects in the dataset (if load_from_local is true) -split_for_eval: True # Whether to split the dataset into trainset and evalset -trainset_size: 1000 # The size of the trainset -evalset_ratio: 0.1 # The proportionate size of the evalset -data_helper_type: quality # Type of data helper to use (quality, generation)

    +
    +evaluation_metrics(base_evaluation: Dict[str, Any], optimized_evaluation: Dict[str, Any]) None[source]
    +

    Log evaluation metrics to mlflow.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +

    base_evaluation: Dict[str, Any] :param optimized_evaluation: The evaluation +metrics of the optimized model. :type optimized_evaluation: Dict[str, Any]

    +
    + +
    +
    +train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the document generator model.

    +
    +
    Parameters:
    +

    load_model_args – The arguments to load the model. :type load_model_args:

    +
    +
    +

    Optional[Dict[str, Any]] :param save_model: Whether to save the model. :type +save_model: bool :return: The trained model. :rtype: dspy.ChainOfThought

    +
    + +
    + +
    +
    +class graphdoc.DocQualityDemonstrationSignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity.

    +
    +

    perfect (4) example: +type Domain @entity {

    +
    +

    “ The namehash (id) of the parent name. References the Domain entity that is the parent of the current domain. Type: Domain ” +parent: Domain

    +
    +

    }

    +
    +
      +
    • +
      almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement.

      almost perfect (3) example: +type Token @entity {

      +
      +

      “ Name of the token, mirrored from the smart contract ” +name: String!

      +
      +

      }

      +
      +
      +
    • +
    • +
      poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect.

      poor but correct (2) example: +type InterestRate @entity {

      +
      +

      “Description for column: id” +id: ID!

      +
      +

      }

      +
      +
      +
    • +
    • +
      incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present.

      incorrect (1) example: +type BridgeProtocol implements Protocol @entity {

      +
      +

      “ Social Security Number of the protocol’s main developer ” +id: Bytes!

      +
      +

      }

      +
      +
      +
    • +
    +

    Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    + +
    +
    +class graphdoc.DocQualityPrompt(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating')[source]
    +

    Bases: SinglePrompt

    +
    +
    +__init__(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating') None[source]
    +

    Initialize the DocQualityPrompt. This is a single prompt that can be used to +evaluate the quality of the documentation for a given schema. This is a wrapper +around the SinglePrompt class that implements the abstract methods.

    +
    +
    Parameters:
    +

    prompt – The prompt to use. Can either be a string that maps to a defined

    +
    +
    +

    signature, as set in the doc_quality_factory, or a dspy.Signature. :type prompt: +Union[str, dspy.Signature] :param prompt_type: The type of prompt to use. :type +prompt_type: Union[Literal[“predict”, “chain_of_thought”], Callable] :param +prompt_metric: The metric to use. Can either be a string that maps to a defined +metric, as set in the doc_quality_factory, or a custom callable function. +Function must have the signature (example: dspy.Example, prediction: +dspy.Prediction) -> bool. :type prompt_metric: Union[Literal[“rating”, +“category”], Callable]

    +
    + +
    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Returns true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare.

    +
    + +
    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) bool[source]
    +

    Evaluate the metric for the given example and prediction.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: Used for DSPy. :type trace: Any +:return: The result of the evaluation. A boolean for if the metric is correct. +:rtype: bool

    +
    + +
    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Formats evaluation metrics into a structured report containing: +- Overall score across all categories +- Percentage correct per category +- Detailed results for each evaluation

    +
    +
    Parameters:
    +
      +
    • examples (List[dspy.Example]) – The examples to evaluate the metric on.

    • +
    • overall_score (float) – The overall score across all categories.

    • +
    • results (List) – The results of the evaluation.

    • +
    • scores (List) – The scores of the evaluation.

    • +
    +
    +
    Returns:
    +

    A dictionary containing the overall score, per category scores, and details. +{ “overall_score”: 0, “per_category_scores”: {}, “details”: [], “results”: [] }

    +
    +
    Return type:
    +

    Dict[str, Any]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.DocQualitySignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. +- almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement. +- poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect. +- incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present. +Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    + +
    +
    +class graphdoc.DocQualityTrainer(prompt: DocQualityPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: SinglePromptTrainer

    +
    +
    +__init__(prompt: DocQualityPrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the DocQualityTrainer. This is the base class for implementing a +trainer for a DocQualityPrompt.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: DocQualityPrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set.

    +
    + +
    +
    +evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +evaluation_metrics(base_evaluation, optimized_evaluation)[source]
    +

    Log evaluation metrics to mlflow. We will log the overall scores and the per +category scores. Per category scores will be logged as a csv file.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the +optimized model. :type optimized_evaluation: Any

    +
    + +
    +
    +train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the model. If provided, we will load the model from mlflow. Otherwise, +we will use the provided DocQualityPrompt as the base model.

    +
    +
    Parameters:
    +
      +
    • load_model_args (Dict[str, Any]) – The arguments to load the model.

    • +
    • save_model (bool) – Whether to save the model.

    • +
    +
    +
    +
    + +
    + +
    +
    +class graphdoc.DspyDataHelper[source]
    +

    Bases: ABC

    +

    Abstract class for creating data objects related to a given dspy.Signature.

    +
    +
    +static _(prompt: Predict) Signature | SignatureMeta[source]
    +

    Given a dspy.Predict object, return a dspy.Signature object.

    +
    + +
    +
    +abstract static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +abstract static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static formatted_signature(signature: Signature | SignatureMeta, example: Example) str[source]
    +

    Given a dspy.Signature and a dspy.Example, return a formatted signature as a +string.

    +
    +
    Parameters:
    +
      +
    • signature (dspy.Signature) – A dspy.Signature object.

    • +
    • example (dspy.Example) – A dspy.Example object.

    • +
    +
    +
    Returns:
    +

    A formatted signature as a string.

    +
    +
    Return type:
    +

    str

    +
    +
    +
    + +
    +
    +abstract static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +abstract static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +abstract static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +prompt_signature() Signature | SignatureMeta[source]
    +

    Given a prompt, return a dspy.Signature object.

    +
    +
    Parameters:
    +

    prompt (Any) – A prompt.

    +
    +
    +
    + +
    +
    +abstract static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.GenerationDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Generation +dspy.Signature.

    +

    The example signature is defined as: +` +database_schema: str = dspy.InputField() +documented_schema: str = dspy.OutputField() +`

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.LocalDataHelper(schema_directory_path: str | ~pathlib._local.Path | None = None, categories: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, ratings: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, categories_ratings: ~typing.Callable = <function SchemaCategoryRatingMapping.get_rating>)[source]
    +

    Bases: object

    +

    A helper class for loading data from a directory.

    +
    +
    Parameters:
    +
      +
    • schema_directory_path (Union[str, Path] Defaults to the path to the schemas in +the graphdoc package.) – The path to the directory containing the schemas

    • +
    • categories (Type[Enum]) – The categories of the schemas. Defaults to SchemaCategory.

    • +
    • ratings (Type[Enum]) – The ratings of the schemas. Defaults to SchemaRating.

    • +
    • categories_ratings – A callable that maps categories to ratings. Defaults to +SchemaCategoryRatingMapping.get_rating.

    • +
    +
    +
    +
    +
    +folder_of_folders_to_dataset(folder_paths: ~typing.Type[~enum.Enum] = <enum 'SchemaCategoryPath'>, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths – Enum class defining folder paths, defaults to

    +
    +
    +

    SchemaCategoryPath. Must have a get_path method. :type folder_paths: Type[Enum] +:param parse_objects: Whether to parse the objects from the schemas :type +parse_objects: bool :param type_mapping: A dictionary mapping graphql-ast node +values to strings

    +
    + +
    +
    +folder_to_dataset(category: str, folder_path: str | Path, parse_objects: bool = True, type_mapping: dict[type, str] | None = None) Dataset[source]
    +

    Load a folder of schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    category – The category of the schemas :type category: str :param

    +
    +
    +

    folder_path: The path to the folder containing the schemas :type folder_path: +Union[str, Path] :param parse_objects: Whether to parse the objects from the +schemas :type parse_objects: bool :param type_mapping: A dictionary mapping +types to strings :type type_mapping: Optional[dict[type, str]]

    +
    + +
    +
    +schema_objects_from_folder(category: str, rating: int, folder_path: str | Path) dict[str, SchemaObject][source]
    +

    Load schemas from a folder, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_path – The path to the folder containing the schemas :type

    +
    +
    +

    folder_path: Union[str, Path] :param category: The category of the schemas :type +category: str :param rating: The rating of the schemas :type rating: int +:return: A dictionary of schemas :rtype: dict[str, SchemaObject]

    +
    + +
    +
    +schema_objects_from_folder_of_folders(folder_paths: ~typing.Type[~enum.Enum] | None = <enum 'SchemaCategoryPath'>) Dict[str, SchemaObject] | None[source]
    +

    Load a folder of folders containing schemas, keeping the difficulty tag.

    +
    +
    Parameters:
    +

    folder_paths (Optional[Type[Enum]]) – Enum class defining folder paths, defaults to +SchemaCategoryPath. Must have a get_path method.

    +
    +
    Returns:
    +

    Dictionary of loaded schemas

    +
    +
    Return type:
    +

    Union[Dict[str, SchemaObject], None]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.MlflowDataHelper(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    Bases: object

    +
    +
    +__init__(mlflow_tracking_uri: str | Path, mlflow_tracking_username: str | None = None, mlflow_tracking_password: str | None = None)[source]
    +

    A helper class for loading and saving models and metadata from mlflow.

    +
    +
    Parameters:
    +

    mlflow_tracking_uri – The uri of the mlflow tracking server. :type

    +
    +
    +

    mlflow_tracking_uri: Union[str, Path] :param mlflow_tracking_username: The +username for the mlflow tracking server. :type mlflow_tracking_username: str +:param mlflow_tracking_password: The password for the mlflow tracking server. +:type mlflow_tracking_password: str

    +
    + +
    +
    +latest_model_version(model_name: str)[source]
    +

    Load the latest version of a model from mlflow.

    +
    +
    Parameters:
    +

    model_name (str) – The name of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_args(load_model_args: Dict[str, str])[source]
    +

    Given a dictionary of arguments, load a model from mlflow. Ordering is +model_by_uri, model_by_name_and_version, latest_model_version.

    +
    +
    Parameters:
    +

    load_model_args (Dict[str, str]) – A dictionary of arguments.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +model_by_name_and_version(model_name: str, model_version: str)[source]
    +

    Load a model from mlflow by name and version.

    +
    +
    Parameters:
    +

    model_name – The name of the model to load. :type model_name: str :param

    +
    +
    +

    model_version: The version of the model to load. :type model_version: str +:return: The loaded model.

    +
    + +
    +
    +model_by_uri(model_uri: str)[source]
    +

    Load a model from mlflow by uri.

    +
    +
    Parameters:
    +

    model_uri (str) – The uri of the model to load.

    +
    +
    Returns:
    +

    The loaded model.

    +
    +
    +
    + +
    +
    +run_parameters(run_id: str) dict[str, Any][source]
    +

    Load the parameters of a run from mlflow.

    +
    +
    Parameters:
    +

    run_id (str) – The id of the run to load the parameters from.

    +
    +
    Returns:
    +

    The parameters of the run.

    +
    +
    +
    + +
    +
    +save_model(model: Signature, model_signature: ModelSignature, model_name: str)[source]
    +

    Save a model to mlflow.

    +
    +
    Parameters:
    +

    model – The model to save. :type model: dspy.Signature :param

    +
    +
    +

    model_signature: The signature of the model. :type model_signature: +ModelSignature :param model_name: The name of the model to save. :type +model_name: str

    +
    + +
    +
    +set_auth_env_vars()[source]
    +

    Set the authentication environment variables.

    +
    + +
    +
    +update_auth_env_vars(mlflow_tracking_username: str, mlflow_tracking_password: str)[source]
    +

    Update the authentication environment variables.

    +
    +
    Parameters:
    +
      +
    • mlflow_tracking_username (str) – The username for the mlflow tracking server.

    • +
    • mlflow_tracking_password (str) – The password for the mlflow tracking server.

    • +
    +
    +
    +
    + +
    + +
    +
    +class graphdoc.Parser(type_mapping: dict[type, str] | None = None)[source]
    +

    Bases: object

    +

    A class for parsing and handling of GraphQL objects.

    +
    +
    +DEFAULT_NODE_TYPES = {<class 'graphql.language.ast.DocumentNode'>: 'full schema', <class 'graphql.language.ast.EnumTypeDefinitionNode'>: 'enum schema', <class 'graphql.language.ast.EnumValueDefinitionNode'>: 'enum value', <class 'graphql.language.ast.ObjectTypeDefinitionNode'>: 'table schema'}
    +
    + +
    +
    +static _check_node_type(node: Node, type_mapping: dict[type, str] | None = None) str[source]
    +

    Check the type of a schema node.

    +
    +
    Parameters:
    +

    node – The schema node to check :type node: Node :param type_mapping:

    +
    +
    +

    Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES :type +type_mapping: Optional[dict[type, str]] :return: The type of the schema node +:rtype: str

    +
    + +
    +
    +static count_description_pattern_matching(node: Node, pattern: str) dict[str, int][source]
    +

    Counts the number of times a pattern matches a description in a node and its +children.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to count the pattern matches in

    • +
    • pattern (str) – The pattern to count the matches of

    • +
    +
    +
    Returns:
    +

    A dictionary with the counts of matches

    +
    +
    Return type:
    +

    dict[str, int]

    +
    +
    +
    + +
    +
    +static fill_empty_descriptions(node: Node, new_column_value: str = 'Description for column: {}', new_table_value: str = 'Description for table: {}', use_value_name: bool = True, value_name: str | None = None)[source]
    +

    Recursively traverse the node and its children, filling in empty descriptions +with the new column or table value. Do not update descriptions that already have +a value. Default values are provided for the new column and table descriptions.

    +
    +
    Parameters:
    +

    node – The GraphQL node to update :type node: Node :param

    +
    +
    +

    new_column_value: The new column description value :type new_column_value: str +:param new_table_value: The new table description value :type new_table_value: +str :param use_value_name: Whether to use the value name in the description +:type use_value_name: bool :param value_name: The name of the value :type +value_name: Optional[str] :return: The updated node :rtype: Node

    +
    + +
    +
    +static parse_objects_from_full_schema_object(schema: SchemaObject, type_mapping: dict[type, str] | None = None) dict[str, SchemaObject] | None[source]
    +

    Parse out all available tables from a full schema object.

    +
    +
    Parameters:
    +

    schema – The full schema object to parse :type schema: SchemaObject :param

    +
    +
    +

    type_mapping: Custom mapping of node types to strings. Defaults to +DEFAULT_NODE_TYPES :type type_mapping: Optional[dict[type, str]] :return: The +parsed objects (tables and enums) :rtype: Union[dict, None]

    +
    + +
    +
    +static parse_schema_from_file(schema_file: str | Path, schema_directory_path: str | Path | None = None) DocumentNode[source]
    +

    Parse a schema from a file.

    +
    +
    Parameters:
    +

    schema_file – The name of the schema file :type schema_

    +
    +
    +

    file: +str +:param schema_directory_path: A path to a directory containing schemas +:type schema_directory_path: str +:return: The parsed schema +:rtype: DocumentNode +:raises Exception: If the schema cannot be parsed

    +
    + +
    +
    +static schema_equality_check(gold_node: Node, check_node: Node) bool[source]
    +

    A method to check if two schema nodes are equal. Only checks that the schemas +structures are equal, not the descriptions.

    +
    +
    Parameters:
    +

    gold_node – The gold standard schema node :type gold_node: Node :param

    +
    +
    +

    check_node: The schema node to check :type check_node: Node :return: Whether the +schemas are equal :rtype: bool

    +
    + +
    +
    +static schema_object_from_file(schema_file: str | Path, category: str | None = None, rating: int | None = None) SchemaObject[source]
    +

    Parse a schema object from a file.

    +
    + +
    +
    +static update_node_descriptions(node: Node, new_value: str | None = None) Node[source]
    +

    Given a GraphQL node, recursively traverse the node and its children, +updating all descriptions with the new value. Can also be used to remove +descriptions by passing None as the new value.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The GraphQL node to update

    • +
    • new_value (Optional[str]) – The new description value. If None, the description will be +removed.

    • +
    +
    +
    Returns:
    +

    The updated node

    +
    +
    Return type:
    +

    Node

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.PromptFactory[source]
    +

    Bases: object

    +
    +
    +static single_prompt(prompt: str | Signature | SignatureMeta, prompt_class: str, prompt_type: str, prompt_metric: str | DocQualityPrompt | SinglePrompt) SinglePrompt[source]
    +

    Returns an instance of the specified prompt class. Allows for the user to +pass in their own dspy signature.

    +
    +
    Parameters:
    +
      +
    • prompt – The prompt to use. :type prompt: Union[str, dspy.Signature]

    • +
    • prompt_class – The class of the prompt to use. :type prompt_class: str

    • +
    • prompt_type – The type of the prompt to use. :type prompt_type: str :param

    • +
    +
    +
    +

    prompt_metric: The metric to use for the prompt. :type prompt_metric: Union[str, +DocQualityPrompt, SinglePrompt] :return: An instance of the specified prompt +class. :rtype: SinglePrompt

    +
    + +
    + +
    +
    +class graphdoc.QualityDataHelper[source]
    +

    Bases: DspyDataHelper

    +

    A helper class for creating data objects related to our Documentation Quality +dspy.Signature.

    +

    The example signature is defined as: +``` +database_schema: str = dspy.InputField() +category: Literal[“perfect”, “almost perfect”, “poor but correct”, “incorrect”] = (

    +
    +

    dspy.OutputField()

    +
    +

    ) +rating: Literal[4, 3, 2, 1] = dspy.OutputField() +```

    +
    +
    +static example(inputs: dict[str, Any]) Example[source]
    +

    Given a dictionary of inputs, return a dspy.Example object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static example_example() Example[source]
    +

    Return an example dspy.Example object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Example object.

    +
    +
    Return type:
    +

    dspy.Example

    +
    +
    +
    + +
    +
    +static model_signature() ModelSignature[source]
    +

    Return a mlflow.models.ModelSignature object. Based on the example object, +removes the output fields and utilizes the remaining fields to infer the model +signature.

    +
    +
    Returns:
    +

    A mlflow.models.ModelSignature object.

    +
    +
    Return type:
    +

    mlflow.models.ModelSignature

    +
    +
    +
    + +
    +
    +static prediction(inputs: dict[str, Any]) Prediction[source]
    +

    Given a dictionary of inputs, return a dspy.Prediction object.

    +
    +
    Parameters:
    +

    inputs (dict[str, Any]) – A dictionary of inputs.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static prediction_example() Prediction[source]
    +

    Return an example dspy.Prediction object with the inputs set to the example +values.

    +
    +
    Returns:
    +

    A dspy.Prediction object.

    +
    +
    Return type:
    +

    dspy.Prediction

    +
    +
    +
    + +
    +
    +static trainset(inputs: dict[str, Any] | Dataset, filter_args: dict[str, Any] | None = None) list[Example][source]
    +

    Given a dictionary of inputs or a datasets.Dataset object, return a list of +dspy.Example objects.

    +
    +
    Parameters:
    +
      +
    • inputs (Union[dict[str, Any], datasets.Dataset]) – A dictionary of inputs or a datasets.Dataset object.

    • +
    • filter_args (Optional[dict[str, Any]]) – A dictionary of filter arguments. These are instructions for +how we will filter and / or transform the inputs.

    • +
    +
    +
    Returns:
    +

    A list of dspy.Example objects.

    +
    +
    Return type:
    +

    list[dspy.Example]

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.SchemaCategory(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ALMOST_PERFECT = 'almost perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor but correct'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaCategory | None[source]
    +
    + +
    + +
    +
    +class graphdoc.SchemaCategoryPath(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +

    Maps schema categories to their folder names.

    +
    +
    +ALMOST_PERFECT = 'almost_perfect'
    +
    + +
    +
    +BLANK = 'blank'
    +
    + +
    +
    +INCORRECT = 'incorrect'
    +
    + +
    +
    +PERFECT = 'perfect'
    +
    + +
    +
    +POOR_BUT_CORRECT = 'poor_but_correct'
    +
    + +
    +
    +classmethod get_path(category: SchemaCategory, folder_path: str | Path) Path | None[source]
    +

    Get the folder path for a given schema category and folder path.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding folder path

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.SchemaCategoryRatingMapping[source]
    +

    Bases: object

    +

    Maps SchemaCategory to SchemaRating.

    +
    +
    +static get_category(rating: SchemaRating) SchemaCategory[source]
    +

    Get the corresponding category for a given schema rating.

    +
    +
    Parameters:
    +

    rating – The schema rating

    +
    +
    Returns:
    +

    The corresponding category

    +
    +
    +
    + +
    +
    +static get_rating(category: SchemaCategory) SchemaRating[source]
    +

    Get the corresponding rating for a given schema category.

    +
    +
    Parameters:
    +

    category – The schema category

    +
    +
    Returns:
    +

    The corresponding rating

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.SchemaObject(key: str, category: enum.Enum | None = None, rating: enum.Enum | None = None, schema_name: str | None = None, schema_type: enum.Enum | None = None, schema_str: str | None = None, schema_ast: graphql.language.ast.Node | None = None)[source]
    +

    Bases: object

    +
    +
    +static _hf_schema_object_columns() Features[source]
    +

    Return the columns for the graph_doc dataset, based on the SchemaObject +fields.

    +
    +
    Returns:
    +

    The columns for the graph_doc dataset

    +
    +
    Return type:
    +

    Features

    +
    +
    +
    + +
    +
    +category: Enum | None = None
    +
    + +
    +
    +classmethod from_dict(data: dict, category_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaCategory'>, rating_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaRating'>, type_enum: ~typing.Type[~enum.Enum] = <enum 'SchemaType'>) SchemaObject[source]
    +

    Create SchemaObject from dictionary with validation.

    +
    +
    Parameters:
    +
      +
    • data – The data dictionary

    • +
    • category_enum – Custom Enum class for categories

    • +
    • rating_enum – Custom Enum class for ratings

    • +
    • type_enum – Custom Enum class for schema types

    • +
    +
    +
    +
    + +
    +
    +key: str
    +
    + +
    +
    +rating: Enum | None = None
    +
    + +
    +
    +schema_ast: Node | None = None
    +
    + +
    +
    +schema_name: str | None = None
    +
    + +
    +
    +schema_str: str | None = None
    +
    + +
    +
    +schema_type: Enum | None = None
    +
    + +
    +
    +to_dataset() Dataset[source]
    +

    Convert the SchemaObject to a Hugging Face Dataset.

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    Return type:
    +

    Dataset

    +
    +
    +
    + +
    +
    +to_dict() dict[source]
    +

    Convert the SchemaObject to a dictionary, excluding the key field.

    +
    +
    Returns:
    +

    Dictionary representation of the SchemaObject without the key

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    + +
    +
    +class graphdoc.SchemaRating(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +FOUR = '4'
    +
    + +
    +
    +ONE = '1'
    +
    + +
    +
    +THREE = '3'
    +
    + +
    +
    +TWO = '2'
    +
    + +
    +
    +ZERO = '0'
    +
    + +
    +
    +classmethod from_value(value: str | int) SchemaRating | None[source]
    +
    + +
    + +
    +
    +class graphdoc.SchemaType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]
    +

    Bases: str, Enum

    +
    +
    +ENUM_SCHEMA = 'enum schema'
    +
    + +
    +
    +FULL_SCHEMA = 'full schema'
    +
    + +
    +
    +TABLE_SCHEMA = 'table schema'
    +
    + +
    +
    +classmethod from_str(value: str) SchemaType | None[source]
    +
    + +
    + +
    +
    +class graphdoc.SinglePrompt(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any)[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any) None[source]
    +

    Initialize a single prompt.

    +
    +
    Parameters:
    +
      +
    • prompt (dspy.Signature) – The prompt to use.

    • +
    • prompt_type (Union[Literal["predict", "chain_of_thought"], Callable]) – The type of prompt to use. Can be “predict” or +“chain_of_thought”. Optionally, pass another dspy.Module.

    • +
    • prompt_metric (Any) – The metric to use. Marked as Any for flexibility (as +metrics can be other prompts).

    • +
    +
    +
    +
    + +
    +
    +abstract compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Return true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare the metrics +on. Determines which metric is used to compare the models. :type +comparison_value: str :return: True if the optimized model is better than the +base model, False otherwise. :rtype: bool

    +
    + +
    +
    +evaluate_evalset(examples: List[Example], num_threads: int = 1, display_progress: bool = True, display_table: bool = True) Dict[str, Any][source]
    +

    Take in a list of examples and evaluate the results.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the results on. :type examples:

    +
    +
    +

    List[dspy.Example] :param num_threads: The number of threads to use for +evaluation. :type num_threads: int :param display_progress: Whether to display +the progress of the evaluation. :type display_progress: bool :param +display_table: Whether to display the table of the evaluation. :type +display_table: bool :return: A dictionary containing the overall score, results, +and scores. :rtype: Dict[str, Any]

    +
    + +
    +
    +abstract evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +abstract format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    This takes the results from the evaluate_evalset and does any necessary +formatting, taking into account the metric type.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the metric on. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results from the evaluate_evalset. +:type results: List :param scores: The scores from the evaluate_evalset. :type +scores: List

    +
    + +
    + +
    +
    +class graphdoc.SinglePromptTrainer(prompt: SinglePrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: SinglePrompt, optimizer_type: str, optimizer_kwargs: Dict[str, Any], mlflow_model_name: str, mlflow_experiment_name: str, mlflow_tracking_uri: str, trainset: List[Example], evalset: List[Example])[source]
    +

    Initialize the SinglePromptTrainer. This is the base class for implementing a +trainer for a single prompt.

    +
    +
    Parameters:
    +

    prompt – The prompt to train. :type prompt: SinglePrompt :param

    +
    +
    +

    optimizer_type: The type of optimizer to use. :type optimizer_type: str :param +optimizer_kwargs: The keyword arguments for the optimizer. :type +optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model +in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name +of the experiment in mlflow. :type mlflow_experiment_name: str :param +mlflow_tracking_uri: The uri of the mlflow tracking server. :type +mlflow_tracking_uri: str :param trainset: The training set. :type trainset: +List[dspy.Example]

    +
    + +
    +
    +abstract evaluate_training(base_model, optimized_model) Tuple[Dict[str, Any], Dict[str, Any]][source]
    +

    Evaluate the training of the model. Comparing the base and optimized models.

    +
    +
    Parameters:
    +
      +
    • base_model (Any) – The base model.

    • +
    • optimized_model (Any) – The optimized model.

    • +
    +
    +
    +
    + +
    +
    +abstract evaluation_metrics(base_evaluation, optimized_evaluation)[source]
    +

    Log evaluation metrics to mlflow.

    +
    +
    Parameters:
    +

    base_evaluation – The evaluation metrics of the base model. :type

    +
    +
    +

    base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the +optimized model. :type optimized_evaluation: Any

    +
    + +
    +
    +abstract train(load_model_args: Dict[str, Any] | None = None, save_model: bool = True)[source]
    +

    Train the model.

    +
    +
    Parameters:
    +
      +
    • load_model_args (Dict[str, Any]) – The arguments to load the model.

    • +
    • save_model (bool) – Whether to save the model.

    • +
    +
    +
    +
    + +
    + +
    +
    +graphdoc._env_constructor(loader: SafeLoader, node: ScalarNode) str[source]
    +

    Custom constructor for environment variables.

    +
    +
    Parameters:
    +
      +
    • loader (yaml.SafeLoader) – The YAML loader.

    • +
    • node (yaml.nodes.ScalarNode) – The node to construct.

    • +
    +
    +
    Returns:
    +

    The environment variable value.

    +
    +
    Return type:
    +

    str

    +
    +
    Raises:
    +

    ValueError – If the environment variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.check_directory_path(directory_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid directory.

    +
    +
    Parameters:
    +

    directory_path (Union[str, Path]) – The path to check.

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid directory.

    +
    +
    Returns:
    +

    None

    +
    +
    Return type:
    +

    None

    +
    +
    +
    + +
    +
    +graphdoc.check_file_path(file_path: str | Path) None[source]
    +

    Check if the provided path resolves to a valid file.

    +
    +
    Parameters:
    +

    file_path – The path to check. :type file_path: Union[str, Path] :raises

    +
    +
    +

    ValueError: If the path does not resolve to a valid file. :return: None :rtype: None

    +
    + +
    +
    +graphdoc.doc_generator_eval_from_yaml(yaml_path: str | Path) DocGeneratorEvaluator[source]
    +

    Load a doc generator evaluator from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A DocGeneratorEvaluator object.

    +
    +
    Return type:
    +

    DocGeneratorEvaluator

    +
    +
    +
    + +
    +
    +graphdoc.doc_generator_module_from_dict(module_dict: dict, prompt: DocGeneratorPrompt | SinglePrompt) DocGeneratorModule[source]
    +

    Load a doc generator module from a dictionary of parameters.

    +
    +
    Parameters:
    +
      +
    • module_dict (dict) – Dictionary containing module parameters.

    • +
    • prompt (DocGeneratorPrompt) – The prompt to use for this module.

    • +
    +
    +
    Returns:
    +

    A DocGeneratorModule object.

    +
    +
    Return type:
    +

    DocGeneratorModule

    +
    +
    +
    + +
    +
    +graphdoc.doc_generator_module_from_yaml(yaml_path: str | Path) DocGeneratorModule[source]
    +

    Load a doc generator module from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A DocGeneratorModule object.

    +
    +
    Return type:
    +

    DocGeneratorModule

    +
    +
    +
    + +
    +
    +graphdoc.load_yaml_config(file_path: str | Path, use_env: bool = True) dict[source]
    +

    Load a YAML configuration file.

    +
    +
    Parameters:
    +
      +
    • file_path (Union[str, Path]) – The path to the YAML file.

    • +
    • use_env (bool) – Whether to use environment variables.

    • +
    +
    +
    Returns:
    +

    The YAML configuration.

    +
    +
    Return type:
    +

    dict

    +
    +
    Raises:
    +

    ValueError – If the path does not resolve to a valid file or the environment +variable is not set.

    +
    +
    +
    + +
    +
    +graphdoc.mlflow_data_helper_from_dict(mlflow_config: dict) MlflowDataHelper[source]
    +

    Load a mlflow data helper from a dictionary of parameters.

    +
    +
    Parameters:
    +

    mlflow_config (dict) – Dictionary containing mlflow parameters.

    +
    +
    +
    + +
    +
    +graphdoc.mlflow_data_helper_from_yaml(yaml_path: str | Path) MlflowDataHelper[source]
    +

    Load a mlflow data helper from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    +
    + +
    +
    +graphdoc.optimizer_class(optimizer_type: str, optimizer_kwargs: Dict[str, Any])[source]
    +
    + +
    +
    +graphdoc.optimizer_compile(optimizer_type: str, optimizer_kwargs: Dict[str, Any])[source]
    +

    Compiles the optimizer given the optimizer type and optimizer kwargs.

    +

    Optimizer kwargs are optimizer specific, and must include a student field that maps +to a dspy.ChainOfThought, dspy.Predict, etc.

    +
    + +
    +
    +graphdoc.schema_objects_to_dataset(schema_objects: List[SchemaObject]) Dataset[source]
    +

    Convert a list of SchemaObjects to a Hugging Face Dataset.

    +
    +
    Parameters:
    +

    schema_objects – The list of SchemaObjects

    +
    +
    Returns:
    +

    The Hugging Face Dataset

    +
    +
    +
    + +
    +
    +graphdoc.setup_logging(log_level: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'])[source]
    +

    Setup logging for the application.

    +
    +
    Parameters:
    +

    log_level (Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]) – The log level.

    +
    +
    +
    + +
    +
    +graphdoc.single_prompt_from_dict(prompt_dict: dict, prompt_metric: str | SinglePrompt, mlflow_dict: dict | None = None) SinglePrompt[source]
    +

    Load a single prompt from a dictionary of parameters.

    +
    +
    Parameters:
    +
      +
    • prompt_dict (dict) – Dictionary containing prompt information.

    • +
    • prompt_metric (Union[str, SinglePrompt]) – The metric to use to calculate the metric. +Can be another prompt signature or a string.

    • +
    +
    +
    Returns:
    +

    A SinglePrompt object.

    +
    +
    Return type:
    +

    SinglePrompt

    +
    +
    +
    + +
    +
    +graphdoc.single_prompt_from_yaml(yaml_path: str | Path) SinglePrompt[source]
    +

    Load a single prompt from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (str) – Path to the YAML file.

    +
    +
    Returns:
    +

    A SinglePrompt object.

    +
    +
    Return type:
    +

    SinglePrompt

    +
    +
    +
    + +
    +
    +graphdoc.single_trainer_from_dict(trainer_dict: dict, prompt: SinglePrompt, trainset: List[Example] | None = None, evalset: List[Example] | None = None) SinglePromptTrainer[source]
    +

    Load a single trainer from a dictionary of parameters.

    +
    +
    Parameters:
    +
      +
    • trainer_dict (dict) – Dictionary containing trainer parameters.

    • +
    • prompt (SinglePrompt) – The prompt to use for this trainer.

    • +
    +
    +
    Returns:
    +

    A SinglePromptTrainer object.

    +
    +
    Return type:
    +

    SinglePromptTrainer

    +
    +
    +
    + +
    +
    +graphdoc.single_trainer_from_yaml(yaml_path: str | Path) SinglePromptTrainer[source]
    +

    Load a single prompt trainer from a YAML file.

    +
    +
    Parameters:
    +

    yaml_path (Union[str, Path]) – Path to the YAML file.

    +
    +
    Returns:
    +

    A SinglePromptTrainer object.

    +
    +
    Return type:
    +

    SinglePromptTrainer

    +
    +
    +
    + +
    +
    +graphdoc.split_trainset(trainset: List[Example], evalset_ratio: float, seed: int = 42) tuple[List[Example], List[Example]][source]
    +

    Split a trainset into a trainset and evalset.

    +
    +
    Parameters:
    +
      +
    • trainset – The trainset to split. :type trainset: List[dspy.Example]

    • +
    • evalset_ratio – The proportionate size of the evalset. :type

    • +
    +
    +
    +

    evalset_ratio: float :return: A tuple of trainset and evalset. :rtype: +tuple[List[dspy.Example], List[dspy.Example]]

    +
    + +
    +
    +graphdoc.trainset_and_evalset_from_yaml(yaml_path: str | Path) tuple[List[Example], List[Example]][source]
    +

    Load a trainset and evalset from a YAML file.

    Parameters:

    yaml_path (Union[str, Path]) – Path to the YAML file.

    @@ -617,24 +2861,10 @@

    Submodules -
    -trainset_from_dict(trainset_dict: dict) List[Example][source]
    +
    +
    +graphdoc.trainset_from_dict(trainset_dict: dict) List[Example][source]

    Load a trainset from a dictionary of parameters.

    -
    -
    {

    “hf_api_key”: !env HF_DATASET_KEY, # Must be a valid Hugging Face API key (with permission to access graphdoc) # TODO: we may make this public in the future -“load_from_hf”: false, # Whether to load the dataset from Hugging Face -“load_from_local”: true, # Whether to load the dataset from a local directory -“load_local_specific_category”: false, # Whether to load all categories or a specific category (if load_from_local is true) -“local_specific_category”: perfect, # The specific category to load from the dataset (if load_from_local is true) -“local_parse_objects”: true, # Whether to parse the objects in the dataset (if load_from_local is true) -“split_for_eval”: true, # Whether to split the dataset into trainset and evalset -“trainset_size”: 1000, # The size of the trainset -“evalset_ratio”: 0.1, # The proportionate size of the evalset -“data_helper_type”: “quality” # Type of data helper to use (quality, generation)

    -
    -
    -

    }

    Parameters:

    trainset_dict (dict) – Dictionary containing trainset parameters.

    @@ -648,23 +2878,10 @@

    Submodules -
    -trainset_from_yaml(yaml_path: str | Path) List[Example][source]
    +
    +
    +graphdoc.trainset_from_yaml(yaml_path: str | Path) List[Example][source]

    Load a trainset from a YAML file.

    -
    -
    data:

    hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key (with permission to access graphdoc) # TODO: we may make this public in the future -load_from_hf: false # Whether to load the dataset from Hugging Face -load_from_local: true # Whether to load the dataset from a local directory -load_local_specific_category: false # Whether to load all categories or a specific category (if load_from_local is true) -local_specific_category: perfect # The specific category to load from the dataset (if load_from_local is true) -local_parse_objects: True # Whether to parse the objects in the dataset (if load_from_local is true) -split_for_eval: True # Whether to split the dataset into trainset and evalset -trainset_size: 1000 # The size of the trainset -evalset_ratio: 0.1 # The proportionate size of the evalset -data_helper_type: quality # Type of data helper to use (quality, generation)

    -
    -
    Parameters:

    yaml_path (Union[str, Path]) – Path to the YAML file.

    @@ -678,11 +2895,6 @@

    Submodules -

    Module contents

    diff --git a/graphdoc/docs/_build/html/source/graphdoc.prompts.html b/graphdoc/docs/_build/html/source/graphdoc.prompts.html index 7ceac5b..20193dc 100644 --- a/graphdoc/docs/_build/html/source/graphdoc.prompts.html +++ b/graphdoc/docs/_build/html/source/graphdoc.prompts.html @@ -115,10 +115,64 @@

  • Module contents
  • @@ -160,8 +214,7 @@

    Submodules class graphdoc.prompts.schema_doc_generation.BadDocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]

    Bases: Signature

    -

    ### TASK: -Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database.

    +

    ### TASK: Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database.

    ### Requirements: - Every table, entity, enum, etc. must have at least one column with a description that is obviosly incorrect. - The documentation must be incorrect and misleading. @@ -190,8 +243,7 @@

    Submodules class graphdoc.prompts.schema_doc_generation.DocGeneratorHelperSignature(*, database_schema: str, documented_schema: str)[source]

    Bases: Signature

    -

    ### TASK: -Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums.

    +

    ### TASK: Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums.

    ### Requirements: - If the field is unclear, and the documentation result is ambiguous, request additional information: “WARNING: Please provide additional information to avoid confusion”. - Utilize only the verified information from the schema to ensure accuracy. @@ -229,18 +281,17 @@

    Submodules
    Parameters:
    -
      -
    • base_metrics (Any) – The base metrics.

    • -
    • optimized_metrics – The optimized metrics.

    • -
    +

    base_metrics – The base metrics. :type base_metrics: Any :param

    +

    optimized_metrics: The optimized metrics.

    evaluate_documentation_quality(schema: Example, pred: Prediction, trace=None, scalar=True) int[source]
    -

    Evaluate the quality of the documentation. Utilizes the instantiated metric type to evaluate the quality of the documentation.

    +

    Evaluate the quality of the documentation. Utilizes the instantiated metric +type to evaluate the quality of the documentation.

    Parameters:
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    @@ -280,14 +330,12 @@

    Submodules
    Parameters:
    -
      -
    • examples (List[dspy.Example]) – The examples used to evaluate the metric.

    • -
    • overall_score (float) – The overall score of the metric.

    • -
    • results (List) – The results of the metric.

    • -
    • scores (List) – The scores of the metric.

    • -
    +

    examples – The examples used to evaluate the metric. :type examples:

    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results of the metric. :type results: +List :param scores: The scores of the metric. :type scores: List

    @@ -296,8 +344,7 @@

    Submodules class graphdoc.prompts.schema_doc_generation.DocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]

    Bases: Signature

    -

    ### TASK: -Given a GraphQL Schema, generate a precise description for the columns of the tables in the database.

    +

    ### TASK: Given a GraphQL Schema, generate a precise description for the columns of the tables in the database.

    ### Requirements: - Focus solely on confirmed details from the provided schema. - Keep the description concise and factual. @@ -326,7 +373,8 @@

    Submodules
    graphdoc.prompts.schema_doc_generation.doc_gen_factory(key: str | Signature | SignatureMeta) Signature | SignatureMeta[source]
    -

    Factory function to return the correct signature based on the key. Currently only supports three signatures (zero_shot_doc_gen, doc_gen_helper, bad_doc_gen).

    +

    Factory function to return the correct signature based on the key. Currently only +supports three signatures (zero_shot_doc_gen, doc_gen_helper, bad_doc_gen).

    Parameters:

    key (Union[str, dspy.Signature]) – The key to return the signature for.

    @@ -347,8 +395,8 @@

    Submodules class graphdoc.prompts.schema_doc_quality.DocQualityDemonstrationSignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]

    Bases: Signature

    -

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating. -The categories are described as: +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: - perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity.

    perfect (4) example: @@ -425,31 +473,38 @@

    Submodules
    __init__(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating') None[source]
    -

    Initialize the DocQualityPrompt. This is a single prompt that can be used to evaluate the quality of the documentation for a given schema. This is a wrapper around the SinglePrompt class that implements the abstract methods.

    +

    Initialize the DocQualityPrompt. This is a single prompt that can be used to +evaluate the quality of the documentation for a given schema. This is a wrapper +around the SinglePrompt class that implements the abstract methods.

    Parameters:
    -
      -
    • prompt (Union[str, dspy.Signature]) – The prompt to use. Can either be a string that maps to a defined signature, as set in the doc_quality_factory, or a dspy.Signature.

    • -
    • prompt_type (Union[Literal["predict", "chain_of_thought"], Callable]) – The type of prompt to use.

    • -
    • prompt_metric (Union[Literal["rating", "category"], Callable]) – The metric to use. Can either be a string that maps to a defined metric, as set in the doc_quality_factory, or a custom callable function. Function must have the signature (example: dspy.Example, prediction: dspy.Prediction) -> bool.

    • -
    +

    prompt – The prompt to use. Can either be a string that maps to a defined

    +

    signature, as set in the doc_quality_factory, or a dspy.Signature. :type prompt: +Union[str, dspy.Signature] :param prompt_type: The type of prompt to use. :type +prompt_type: Union[Literal[“predict”, “chain_of_thought”], Callable] :param +prompt_metric: The metric to use. Can either be a string that maps to a defined +metric, as set in the doc_quality_factory, or a custom callable function. +Function must have the signature (example: dspy.Example, prediction: +dspy.Prediction) -> bool. :type prompt_metric: Union[Literal[“rating”, +“category”], Callable]

    compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    -

    Compare the metrics of the base and optimized models. Returns true if the optimized model is better than the base model.

    +

    Compare the metrics of the base and optimized models. Returns true if the +optimized model is better than the base model.

    Parameters:
      -
    • base_metrics (Any) – The metrics of the base model.

    • -
    • optimized_metrics (Any) – The metrics of the optimized model.

    • -
    • comparison_value – The value to compare.

    • +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    +

    optimized_metrics: Any :param comparison_value: The value to compare.

    @@ -458,19 +513,13 @@

    Submodules
    Parameters:
    -
      -
    • example (dspy.Example) – The example to evaluate the metric on.

    • -
    • prediction (dspy.Prediction) – The prediction to evaluate the metric on.

    • -
    • trace (Any) – Used for DSPy.

    • -
    -
    -
    Returns:
    -

    The result of the evaluation. A boolean for if the metric is correct.

    -
    -
    Return type:
    -

    bool

    +

    example – The example to evaluate the metric on. :type example:

    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: Used for DSPy. :type trace: Any +:return: The result of the evaluation. A boolean for if the metric is correct. +:rtype: bool

    @@ -490,7 +539,8 @@

    SubmodulesReturns: -

    A dictionary containing the overall score, per category scores, and details. { “overall_score”: 0, “per_category_scores”: {}, “details”: [], “results”: [] }

    +

    A dictionary containing the overall score, per category scores, and details. +{ “overall_score”: 0, “per_category_scores”: {}, “details”: [], “results”: [] }

    Return type:

    Dict[str, Any]

    @@ -504,8 +554,8 @@

    Submodules class graphdoc.prompts.schema_doc_quality.DocQualitySignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]

    Bases: Signature

    -

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating. -The categories are described as: +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: - perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. - almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement. - poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect. @@ -537,7 +587,8 @@

    Submodules
    graphdoc.prompts.schema_doc_quality.doc_quality_factory(key: str | Signature | SignatureMeta) Signature | SignatureMeta[source]
    -

    Factory function to return the correct signature based on the key. Currently only supports two signatures (doc_quality and doc_quality_demo).

    +

    Factory function to return the correct signature based on the key. Currently only +supports two signatures (doc_quality and doc_quality_demo).

    Parameters:

    key (Union[str, dspy.Signature]) – The key to return the signature for.

    @@ -563,8 +614,10 @@

    SubmodulesParameters:
    • prompt (dspy.Signature) – The prompt to use.

    • -
    • prompt_type (Union[Literal["predict", "chain_of_thought"], Callable]) – The type of prompt to use. Can be “predict” or “chain_of_thought”. Optionally, pass another dspy.Module.

    • -
    • prompt_metric (Any) – The metric to use. Marked as Any for flexibility (as metrics can be other prompts).

    • +
    • prompt_type (Union[Literal["predict", "chain_of_thought"], Callable]) – The type of prompt to use. Can be “predict” or +“chain_of_thought”. Optionally, pass another dspy.Module.

    • +
    • prompt_metric (Any) – The metric to use. Marked as Any for flexibility (as +metrics can be other prompts).

    @@ -573,22 +626,20 @@

    Submodules
    abstract compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    -

    Compare the metrics of the base and optimized models. Return true if the optimized model is better than the base model.

    +

    Compare the metrics of the base and optimized models. Return true if the +optimized model is better than the base model.

    Parameters:
      -
    • base_metrics (Any) – The metrics of the base model.

    • -
    • optimized_metrics (Any) – The metrics of the optimized model.

    • -
    • comparison_value (str) – The value to compare the metrics on. Determines which metric is used to compare the models.

    • +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    -
    Returns:
    -

    True if the optimized model is better than the base model, False otherwise.

    -
    -
    Return type:
    -

    bool

    -
    +

    optimized_metrics: Any :param comparison_value: The value to compare the metrics +on. Determines which metric is used to compare the models. :type +comparison_value: str :return: True if the optimized model is better than the +base model, False otherwise. :rtype: bool

    @@ -597,58 +648,405 @@

    Submodules
    Parameters:
    +

    examples – The examples to evaluate the results on. :type examples:

    +
    +

    +

    List[dspy.Example] :param num_threads: The number of threads to use for +evaluation. :type num_threads: int :param display_progress: Whether to display +the progress of the evaluation. :type display_progress: bool :param +display_table: Whether to display the table of the evaluation. :type +display_table: bool :return: A dictionary containing the overall score, results, +and scores. :rtype: Dict[str, Any]

    +

    + +
    +
    +abstract evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +abstract format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    This takes the results from the evaluate_evalset and does any necessary +formatting, taking into account the metric type.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the metric on. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results from the evaluate_evalset. +:type results: List :param scores: The scores from the evaluate_evalset. :type +scores: List

    +
    + + + + +
    +

    Module contents

    +
    +
    +class graphdoc.prompts.BadDocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database.

    +

    ### Requirements: +- Every table, entity, enum, etc. must have at least one column with a description that is obviosly incorrect. +- The documentation must be incorrect and misleading. +- The documentation should be scattered, with only some columns having documentation.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.prompts.DocGeneratorHelperSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums.

    +

    ### Requirements: +- If the field is unclear, and the documentation result is ambiguous, request additional information: “WARNING: Please provide additional information to avoid confusion”. +- Utilize only the verified information from the schema to ensure accuracy. +- Descriptions should be factual, straightforward, and avoid any speculative language. +- Refrain from using the phrase “in the { table } table” within your descriptions. +- Ensure that the documentation adheres to standard schema formatting without modifying the underlying schema structure.

    +

    ### Formatting: +- Maintain consistency with the existing documentation style and structure. +- Focus on clarity and precision to aid developers and system architects in understanding the schema’s components effectively.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.prompts.DocGeneratorPrompt(prompt: str | Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: DocQualityPrompt)[source]
    +

    Bases: SinglePrompt

    +
    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the base and optimized metrics.

    +
    +
    Parameters:
    +

    base_metrics – The base metrics. :type base_metrics: Any :param

    +
    +
    +

    optimized_metrics: The optimized metrics.

    +
    + +
    +
    +evaluate_documentation_quality(schema: Example, pred: Prediction, trace=None, scalar=True) int[source]
    +

    Evaluate the quality of the documentation. Utilizes the instantiated metric +type to evaluate the quality of the documentation.

    +
    +
    Parameters:
      -
    • examples (List[dspy.Example]) – The examples to evaluate the results on.

    • -
    • num_threads (int) – The number of threads to use for evaluation.

    • -
    • display_progress (bool) – Whether to display the progress of the evaluation.

    • -
    • display_table (bool) – Whether to display the table of the evaluation.

    • +
    • schema (dspy.Example) – The schema to evaluate the documentation for.

    • +
    • pred (dspy.Prediction) – The predicted documentation.

    • +
    • trace (Any) – The trace of the prediction.

    • +
    • scalar (bool) – Whether to return a squared score or the full evaluation object.

    Returns:
    -

    A dictionary containing the overall score, results, and scores.

    +

    The squared score or the full evaluation object.

    Return type:
    -

    Dict[str, Any]

    +

    int

    -
    -abstract evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]

    This is the metric used to evalaute the prompt.

    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Format the metric results into a dictionary.

    +
    +
    Parameters:
    +

    examples – The examples used to evaluate the metric. :type examples:

    +
    +
    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results of the metric. :type results: +List :param scores: The scores of the metric. :type scores: List

    +
    + +
    + +
    +
    +class graphdoc.prompts.DocGeneratorSignature(*, database_schema: str, documented_schema: str)[source]
    +

    Bases: Signature

    +

    ### TASK: Given a GraphQL Schema, generate a precise description for the columns of the tables in the database.

    +

    ### Requirements: +- Focus solely on confirmed details from the provided schema. +- Keep the description concise and factual. +- Exclude any speculative or additional commentary. +- DO NOT return the phrase “in the { table } table” in your description.

    +

    ### Formatting +- Ensure that the schema maintains proper documentation formatting, as is provided.

    +
    +
    +database_schema: str
    +
    + +
    +
    +documented_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    + +
    +
    +class graphdoc.prompts.DocQualityDemonstrationSignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity.

    +
    +

    perfect (4) example: +type Domain @entity {

    +
    +

    “ The namehash (id) of the parent name. References the Domain entity that is the parent of the current domain. Type: Domain ” +parent: Domain

    +
    +

    }

    +
    +
      +
    • +
      almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement.

      almost perfect (3) example: +type Token @entity {

      +
      +

      “ Name of the token, mirrored from the smart contract ” +name: String!

      +
      +

      }

      +
      +
      +
    • +
    • +
      poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect.

      poor but correct (2) example: +type InterestRate @entity {

      +
      +

      “Description for column: id” +id: ID!

      +
      +

      }

      +
      +
      +
    • +
    • +
      incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present.

      incorrect (1) example: +type BridgeProtocol implements Protocol @entity {

      +
      +

      “ Social Security Number of the protocol’s main developer ” +id: Bytes!

      +
      +

      }

      +
      +
      +
    • +
    +

    Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    + +
    +
    +class graphdoc.prompts.DocQualityPrompt(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating')[source]
    +

    Bases: SinglePrompt

    +
    +
    +__init__(prompt: Literal['doc_quality', 'doc_quality_demo'] | Signature | SignatureMeta = 'doc_quality', prompt_type: Literal['predict', 'chain_of_thought'] | Callable = 'predict', prompt_metric: Literal['rating', 'category'] | Callable = 'rating') None[source]
    +

    Initialize the DocQualityPrompt. This is a single prompt that can be used to +evaluate the quality of the documentation for a given schema. This is a wrapper +around the SinglePrompt class that implements the abstract methods.

    +
    +
    Parameters:
    +

    prompt – The prompt to use. Can either be a string that maps to a defined

    +
    +
    +

    signature, as set in the doc_quality_factory, or a dspy.Signature. :type prompt: +Union[str, dspy.Signature] :param prompt_type: The type of prompt to use. :type +prompt_type: Union[Literal[“predict”, “chain_of_thought”], Callable] :param +prompt_metric: The metric to use. Can either be a string that maps to a defined +metric, as set in the doc_quality_factory, or a custom callable function. +Function must have the signature (example: dspy.Example, prediction: +dspy.Prediction) -> bool. :type prompt_metric: Union[Literal[“rating”, +“category”], Callable]

    +
    + +
    +
    +compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Returns true if the +optimized model is better than the base model.

    +
    +
    Parameters:
      -
    • example (dspy.Example) – The example to evaluate the metric on.

    • -
    • prediction (dspy.Prediction) – The prediction to evaluate the metric on.

    • -
    • trace (Any) – The trace to evaluate the metric on. This is for DSPy.

    • +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    +

    optimized_metrics: Any :param comparison_value: The value to compare.

    -
    -abstract format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    -

    This takes the results from the evaluate_evalset and does any necessary formatting, taking into account the metric type.

    +
    +evaluate_metric(example: Example, prediction: Prediction, trace=None) bool[source]
    +

    Evaluate the metric for the given example and prediction.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: Used for DSPy. :type trace: Any +:return: The result of the evaluation. A boolean for if the metric is correct. +:rtype: bool

    +
    + +
    +
    +format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    Formats evaluation metrics into a structured report containing: +- Overall score across all categories +- Percentage correct per category +- Detailed results for each evaluation

    Parameters:
    • examples (List[dspy.Example]) – The examples to evaluate the metric on.

    • -
    • overall_score (float) – The overall score of the metric.

    • -
    • results (List) – The results from the evaluate_evalset.

    • -
    • scores (List) – The scores from the evaluate_evalset.

    • +
    • overall_score (float) – The overall score across all categories.

    • +
    • results (List) – The results of the evaluation.

    • +
    • scores (List) – The scores of the evaluation.

    +
    Returns:
    +

    A dictionary containing the overall score, per category scores, and details. +{ “overall_score”: 0, “per_category_scores”: {}, “details”: [], “results”: [] }

    +
    +
    Return type:
    +

    Dict[str, Any]

    +
    -
    -
    -

    Module contents

    +
    +
    +class graphdoc.prompts.DocQualitySignature(*, database_schema: str, category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect'], rating: Literal[4, 3, 2, 1])[source]
    +

    Bases: Signature

    +

    You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating.

    +

    The categories are described as: +- perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. +- almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement. +- poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect. +- incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present. +Output a number rating that corresponds to the categories described above.

    +
    +
    +category: Literal['perfect', 'almost perfect', 'poor but correct', 'incorrect']
    +
    + +
    +
    +database_schema: str
    +
    + +
    +
    +model_config: ClassVar[ConfigDict] = {}
    +

    Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

    +
    + +
    +
    +rating: Literal[4, 3, 2, 1]
    +
    + +
    +
    class graphdoc.prompts.PromptFactory[source]
    @@ -656,23 +1054,109 @@

    Submodules
    static single_prompt(prompt: str | Signature | SignatureMeta, prompt_class: str, prompt_type: str, prompt_metric: str | DocQualityPrompt | SinglePrompt) SinglePrompt[source]
    -

    Returns an instance of the specified prompt class. Allows for the user to pass in their own dspy signature.

    +

    Returns an instance of the specified prompt class. Allows for the user to +pass in their own dspy signature.

    Parameters:
      -
    • prompt (Union[str, dspy.Signature]) – The prompt to use.

    • -
    • prompt_class (str) – The class of the prompt to use.

    • -
    • prompt_type (str) – The type of the prompt to use.

    • -
    • prompt_metric (Union[str, DocQualityPrompt, SinglePrompt]) – The metric to use for the prompt.

    • +
    • prompt – The prompt to use. :type prompt: Union[str, dspy.Signature]

    • +
    • prompt_class – The class of the prompt to use. :type prompt_class: str

    • +
    • prompt_type – The type of the prompt to use. :type prompt_type: str :param

    -
    Returns:
    -

    An instance of the specified prompt class.

    +
    +

    prompt_metric: The metric to use for the prompt. :type prompt_metric: Union[str, +DocQualityPrompt, SinglePrompt] :return: An instance of the specified prompt +class. :rtype: SinglePrompt

    +

    + + + +
    +
    +class graphdoc.prompts.SinglePrompt(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any)[source]
    +

    Bases: ABC

    +
    +
    +__init__(prompt: Signature | SignatureMeta, prompt_type: Literal['predict', 'chain_of_thought'] | Callable, prompt_metric: Any) None[source]
    +

    Initialize a single prompt.

    +
    +
    Parameters:
    +
      +
    • prompt (dspy.Signature) – The prompt to use.

    • +
    • prompt_type (Union[Literal["predict", "chain_of_thought"], Callable]) – The type of prompt to use. Can be “predict” or +“chain_of_thought”. Optionally, pass another dspy.Module.

    • +
    • prompt_metric (Any) – The metric to use. Marked as Any for flexibility (as +metrics can be other prompts).

    • +
    -
    Return type:
    -

    SinglePrompt

    +
    +
    + +
    +
    +abstract compare_metrics(base_metrics: Any, optimized_metrics: Any, comparison_value: str = 'overall_score') bool[source]
    +

    Compare the metrics of the base and optimized models. Return true if the +optimized model is better than the base model.

    +
    +
    Parameters:
    +
      +
    • base_metrics – The metrics of the base model. :type base_metrics: Any

    • +
    • optimized_metrics – The metrics of the optimized model. :type

    • +
    +
    +
    +

    optimized_metrics: Any :param comparison_value: The value to compare the metrics +on. Determines which metric is used to compare the models. :type +comparison_value: str :return: True if the optimized model is better than the +base model, False otherwise. :rtype: bool

    +
    + +
    +
    +evaluate_evalset(examples: List[Example], num_threads: int = 1, display_progress: bool = True, display_table: bool = True) Dict[str, Any][source]
    +

    Take in a list of examples and evaluate the results.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the results on. :type examples:

    +
    +
    +

    List[dspy.Example] :param num_threads: The number of threads to use for +evaluation. :type num_threads: int :param display_progress: Whether to display +the progress of the evaluation. :type display_progress: bool :param +display_table: Whether to display the table of the evaluation. :type +display_table: bool :return: A dictionary containing the overall score, results, +and scores. :rtype: Dict[str, Any]

    +
    + +
    +
    +abstract evaluate_metric(example: Example, prediction: Prediction, trace=None) Any[source]
    +

    This is the metric used to evalaute the prompt.

    +
    +
    Parameters:
    +

    example – The example to evaluate the metric on. :type example:

    +
    +
    +

    dspy.Example :param prediction: The prediction to evaluate the metric on. :type +prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. +This is for DSPy. :type trace: Any

    +
    + +
    +
    +abstract format_metric(examples: List[Example], overall_score: float, results: List, scores: List) Dict[str, Any][source]
    +

    This takes the results from the evaluate_evalset and does any necessary +formatting, taking into account the metric type.

    +
    +
    Parameters:
    +

    examples – The examples to evaluate the metric on. :type examples:

    +

    List[dspy.Example] :param overall_score: The overall score of the metric. :type +overall_score: float :param results: The results from the evaluate_evalset. +:type results: List :param scores: The scores from the evaluate_evalset. :type +scores: List

    diff --git a/graphdoc/docs/_build/html/source/modules.html b/graphdoc/docs/_build/html/source/modules.html index e11249e..0bb96d0 100644 --- a/graphdoc/docs/_build/html/source/modules.html +++ b/graphdoc/docs/_build/html/source/modules.html @@ -101,26 +101,241 @@

    graphdoc
  • Submodules
  • graphdoc.main module -
  • -
  • Module contents
  • +
  • log
  • + + +
  • Module contents +
  • diff --git a/graphdoc/docs/conf.py b/graphdoc/docs/conf.py index 891a737..a1387e4 100644 --- a/graphdoc/docs/conf.py +++ b/graphdoc/docs/conf.py @@ -45,3 +45,10 @@ html_theme = "sphinx_rtd_theme" html_static_path = ["_static"] + +# -- Path setup -------------------------------------------------------------- +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. +import os +import sys +sys.path.insert(0, os.path.abspath('..')) diff --git a/graphdoc/docs/graphdoc.data.dspy_data.rst b/graphdoc/docs/graphdoc.data.dspy_data.rst new file mode 100644 index 0000000..75d31db --- /dev/null +++ b/graphdoc/docs/graphdoc.data.dspy_data.rst @@ -0,0 +1,37 @@ +graphdoc.data.dspy\_data package +================================ + +Submodules +---------- + +graphdoc.data.dspy\_data.dspy\_data\_helper module +-------------------------------------------------- + +.. automodule:: graphdoc.data.dspy_data.dspy_data_helper + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.dspy\_data.generation\_data\_helper module +-------------------------------------------------------- + +.. automodule:: graphdoc.data.dspy_data.generation_data_helper + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.dspy\_data.quality\_data\_helper module +----------------------------------------------------- + +.. automodule:: graphdoc.data.dspy_data.quality_data_helper + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.data.dspy_data + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/graphdoc.data.mlflow_data.rst b/graphdoc/docs/graphdoc.data.mlflow_data.rst new file mode 100644 index 0000000..7505d93 --- /dev/null +++ b/graphdoc/docs/graphdoc.data.mlflow_data.rst @@ -0,0 +1,21 @@ +graphdoc.data.mlflow\_data package +================================== + +Submodules +---------- + +graphdoc.data.mlflow\_data.mlflow\_data\_helper module +------------------------------------------------------ + +.. automodule:: graphdoc.data.mlflow_data.mlflow_data_helper + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.data.mlflow_data + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/graphdoc.data.rst b/graphdoc/docs/graphdoc.data.rst new file mode 100644 index 0000000..9f059b8 --- /dev/null +++ b/graphdoc/docs/graphdoc.data.rst @@ -0,0 +1,54 @@ +graphdoc.data package +===================== + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + graphdoc.data.dspy_data + graphdoc.data.mlflow_data + +Submodules +---------- + +graphdoc.data.helper module +--------------------------- + +.. automodule:: graphdoc.data.helper + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.local module +-------------------------- + +.. automodule:: graphdoc.data.local + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.parser module +--------------------------- + +.. automodule:: graphdoc.data.parser + :members: + :undoc-members: + :show-inheritance: + +graphdoc.data.schema module +--------------------------- + +.. automodule:: graphdoc.data.schema + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.data + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/graphdoc.eval.rst b/graphdoc/docs/graphdoc.eval.rst new file mode 100644 index 0000000..8b095e3 --- /dev/null +++ b/graphdoc/docs/graphdoc.eval.rst @@ -0,0 +1,21 @@ +graphdoc.eval package +===================== + +Submodules +---------- + +graphdoc.eval.doc\_generator\_eval module +----------------------------------------- + +.. automodule:: graphdoc.eval.doc_generator_eval + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.eval + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/graphdoc.modules.rst b/graphdoc/docs/graphdoc.modules.rst new file mode 100644 index 0000000..b8bfd19 --- /dev/null +++ b/graphdoc/docs/graphdoc.modules.rst @@ -0,0 +1,21 @@ +graphdoc.modules package +======================== + +Submodules +---------- + +graphdoc.modules.doc\_generator\_module module +---------------------------------------------- + +.. automodule:: graphdoc.modules.doc_generator_module + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.modules + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/graphdoc.prompts.rst b/graphdoc/docs/graphdoc.prompts.rst new file mode 100644 index 0000000..cf530c9 --- /dev/null +++ b/graphdoc/docs/graphdoc.prompts.rst @@ -0,0 +1,37 @@ +graphdoc.prompts package +======================== + +Submodules +---------- + +graphdoc.prompts.schema\_doc\_generation module +----------------------------------------------- + +.. automodule:: graphdoc.prompts.schema_doc_generation + :members: + :undoc-members: + :show-inheritance: + +graphdoc.prompts.schema\_doc\_quality module +-------------------------------------------- + +.. automodule:: graphdoc.prompts.schema_doc_quality + :members: + :undoc-members: + :show-inheritance: + +graphdoc.prompts.single\_prompt module +-------------------------------------- + +.. automodule:: graphdoc.prompts.single_prompt + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.prompts + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/graphdoc.rst b/graphdoc/docs/graphdoc.rst new file mode 100644 index 0000000..502daff --- /dev/null +++ b/graphdoc/docs/graphdoc.rst @@ -0,0 +1,41 @@ +graphdoc package +================ + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + graphdoc.data + graphdoc.eval + graphdoc.modules + graphdoc.prompts + graphdoc.train + +Submodules +---------- + +graphdoc.config module +---------------------- + +.. automodule:: graphdoc.config + :members: + :undoc-members: + :show-inheritance: + +graphdoc.main module +-------------------- + +.. automodule:: graphdoc.main + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/graphdoc.train.rst b/graphdoc/docs/graphdoc.train.rst new file mode 100644 index 0000000..d6d3f32 --- /dev/null +++ b/graphdoc/docs/graphdoc.train.rst @@ -0,0 +1,45 @@ +graphdoc.train package +====================== + +Submodules +---------- + +graphdoc.train.doc\_generator\_trainer module +--------------------------------------------- + +.. automodule:: graphdoc.train.doc_generator_trainer + :members: + :undoc-members: + :show-inheritance: + +graphdoc.train.doc\_quality\_trainer module +------------------------------------------- + +.. automodule:: graphdoc.train.doc_quality_trainer + :members: + :undoc-members: + :show-inheritance: + +graphdoc.train.optimizers module +-------------------------------- + +.. automodule:: graphdoc.train.optimizers + :members: + :undoc-members: + :show-inheritance: + +graphdoc.train.single\_prompt\_trainer module +--------------------------------------------- + +.. automodule:: graphdoc.train.single_prompt_trainer + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: graphdoc.train + :members: + :undoc-members: + :show-inheritance: diff --git a/graphdoc/docs/index.rst b/graphdoc/docs/index.rst index 7116441..3db22af 100644 --- a/graphdoc/docs/index.rst +++ b/graphdoc/docs/index.rst @@ -22,8 +22,6 @@ License: `Apache License 2.0 `_ :caption: Contents: modules - graphdoc - graphdoc.prompts Indices and tables ================== diff --git a/graphdoc/docs/modules.rst b/graphdoc/docs/modules.rst new file mode 100644 index 0000000..06251c7 --- /dev/null +++ b/graphdoc/docs/modules.rst @@ -0,0 +1,7 @@ +graphdoc +======== + +.. toctree:: + :maxdepth: 4 + + graphdoc From 6a91c610d9b227b3df0674c541834743c1407eb0 Mon Sep 17 00:00:00 2001 From: denver Date: Tue, 11 Mar 2025 11:36:34 -0500 Subject: [PATCH 3/7] style: format docstrings --- .../graphdoc/prompts/schema_doc_generation.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/graphdoc/graphdoc/prompts/schema_doc_generation.py b/graphdoc/graphdoc/prompts/schema_doc_generation.py index 14af3b8..7d083f9 100644 --- a/graphdoc/graphdoc/prompts/schema_doc_generation.py +++ b/graphdoc/graphdoc/prompts/schema_doc_generation.py @@ -190,10 +190,14 @@ def format_metric( ) -> Dict[str, Any]: """Format the metric results into a dictionary. - :param examples: The examples used to evaluate the metric. :type examples: - List[dspy.Example] :param overall_score: The overall score of the metric. :type - overall_score: float :param results: The results of the metric. :type results: - List :param scores: The scores of the metric. :type scores: List + :param examples: The examples used to evaluate the metric. + :type examples: List[dspy.Example] + :param overall_score: The overall score of the metric. + :type overall_score: float + :param results: The results of the metric. + :type results: List + :param scores: The scores of the metric. + :type scores: List """ # TODO: we can expand this to further parse out the results and scores @@ -211,9 +215,10 @@ def compare_metrics( ) -> bool: """Compare the base and optimized metrics. - :param base_metrics: The base metrics. :type base_metrics: Any :param - optimized_metrics: The optimized metrics. - + :param base_metrics: The base metrics. + :type base_metrics: Any + :param optimized_metrics: The optimized metrics. + :type """ if comparison_value == "overall_score": return optimized_metrics.get("overall_score", 0) > base_metrics.get( From ed556f6270559d796f911495e5b691f94a3d2361 Mon Sep 17 00:00:00 2001 From: denver Date: Tue, 11 Mar 2025 11:40:19 -0500 Subject: [PATCH 4/7] style: format code block docstrings --- graphdoc/graphdoc/config.py | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/graphdoc/graphdoc/config.py b/graphdoc/graphdoc/config.py index c546dc7..6ac20be 100644 --- a/graphdoc/graphdoc/config.py +++ b/graphdoc/graphdoc/config.py @@ -35,8 +35,7 @@ def mlflow_data_helper_from_dict(mlflow_config: dict) -> MlflowDataHelper: - """ - Load a mlflow data helper from a dictionary of parameters. + """Load a mlflow data helper from a dictionary of parameters. :param mlflow_config: Dictionary containing mlflow parameters. :type mlflow_config: dict @@ -47,6 +46,7 @@ def mlflow_data_helper_from_dict(mlflow_config: dict) -> MlflowDataHelper: "mlflow_tracking_username": "admin", "mlflow_tracking_password": "password" } + """ return MlflowDataHelper( mlflow_tracking_uri=mlflow_config["mlflow_tracking_uri"], @@ -56,17 +56,17 @@ def mlflow_data_helper_from_dict(mlflow_config: dict) -> MlflowDataHelper: def mlflow_data_helper_from_yaml(yaml_path: Union[str, Path]) -> MlflowDataHelper: - """ - Load a mlflow data helper from a YAML file. + """Load a mlflow data helper from a YAML file. :param yaml_path: Path to the YAML file. :type yaml_path: Union[str, Path] .. code-block:: yaml - mlflow: + mlflow: mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow mlflow_tracking_username: !env MLFLOW_TRACKING_USERNAME # The username for the mlflow tracking server mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server + """ config = load_yaml_config(yaml_path) return mlflow_data_helper_from_dict( @@ -78,8 +78,7 @@ def mlflow_data_helper_from_yaml(yaml_path: Union[str, Path]) -> MlflowDataHelpe # Data Methods # ####################### def trainset_from_dict(trainset_dict: dict) -> List[dspy.Example]: - """ - Load a trainset from a dictionary of parameters. + """Load a trainset from a dictionary of parameters. .. code-block:: yaml { @@ -112,6 +111,7 @@ def trainset_from_dict(trainset_dict: dict) -> List[dspy.Example]: :type trainset_dict: dict :return: A trainset. :rtype: List[dspy.Example] + """ # TODO: refactor to enable the passing of alternative schema_directory_path, # and the related enums that must be passed in turn @@ -251,8 +251,7 @@ def single_prompt_from_dict( prompt_metric: Union[str, SinglePrompt], mlflow_dict: Optional[dict] = None, ) -> SinglePrompt: - """ - Load a single prompt from a dictionary of parameters. + """Load a single prompt from a dictionary of parameters. .. code-block:: json { @@ -278,6 +277,7 @@ def single_prompt_from_dict( :type prompt_metric: Union[str, SinglePrompt] :return: A SinglePrompt object. :rtype: SinglePrompt + """ try: # if we are loading from mlflow, modify the prompt_dict with the loaded model @@ -365,8 +365,7 @@ def single_trainer_from_dict( trainset: Optional[List[dspy.Example]] = None, evalset: Optional[List[dspy.Example]] = None, ) -> SinglePromptTrainer: - """ - Load a single trainer from a dictionary of parameters. + """Load a single trainer from a dictionary of parameters. .. code-block:: json { @@ -392,6 +391,7 @@ def single_trainer_from_dict( :type prompt: SinglePrompt :return: A SinglePromptTrainer object. :rtype: SinglePromptTrainer + """ if trainset is None: trainset = [] @@ -488,8 +488,7 @@ def single_trainer_from_yaml(yaml_path: Union[str, Path]) -> SinglePromptTrainer def doc_generator_module_from_dict( module_dict: dict, prompt: Union[DocGeneratorPrompt, SinglePrompt] ) -> DocGeneratorModule: - """ - Load a doc generator module from a dictionary of parameters. + """Load a doc generator module from a dictionary of parameters. .. code-block:: json { @@ -505,6 +504,7 @@ def doc_generator_module_from_dict( :type prompt: DocGeneratorPrompt :return: A DocGeneratorModule object. :rtype: DocGeneratorModule + """ return DocGeneratorModule( prompt=prompt, @@ -575,11 +575,11 @@ def doc_generator_eval_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorEva """Load a doc generator evaluator from a YAML file. .. code-block:: yaml - mlflow: + mlflow: mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow mlflow_tracking_username: !env MLFLOW_TRACKING_USERNAME # The username for the mlflow tracking server mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server - + prompt: prompt: base_doc_gen # Which prompt signature to use class: DocGeneratorPrompt # Must be a child of SinglePrompt (we will use an enum to map this) @@ -599,9 +599,9 @@ def doc_generator_eval_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorEva load_from_mlflow: false # Whether to load the prompt from an MLFlow URI model_uri: null # The tracking URI for MLflow model_name: null # The name of the model in MLflow - model_version: null + model_version: null - module: + module: retry: true # Whether to retry the generation if the quality check fails retry_limit: 1 # The maximum number of retries rating_threshold: 3 # The rating threshold for the quality check @@ -612,8 +612,8 @@ def doc_generator_eval_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorEva mlflow_experiment_name: doc_generator_eval # The name of the experiment in MLflow generator_prediction_field: documented_schema # The field in the generator prediction to use evaluator_prediction_field: rating # The field in the evaluator prediction to use - readable_value: 25 - + readable_value: 25 + :param yaml_path: Path to the YAML file. :type yaml_path: Union[str, Path] :return: A DocGeneratorEvaluator object. From 52348f06f866f18b2f7c8c3fcf84d7ad08c2c241 Mon Sep 17 00:00:00 2001 From: denver Date: Tue, 11 Mar 2025 11:43:09 -0500 Subject: [PATCH 5/7] ci: remove _build directory --- .../docs/_build/doctrees/environment.pickle | Bin 1024152 -> 0 bytes .../_build/doctrees/graphdoc.data.doctree | Bin 709643 -> 0 bytes .../doctrees/graphdoc.data.dspy_data.doctree | Bin 284484 -> 0 bytes .../graphdoc.data.mlflow_data.doctree | Bin 104843 -> 0 bytes .../docs/_build/doctrees/graphdoc.doctree | Bin 1167557 -> 0 bytes .../_build/doctrees/graphdoc.eval.doctree | Bin 71131 -> 0 bytes .../_build/doctrees/graphdoc.modules.doctree | Bin 96939 -> 0 bytes .../_build/doctrees/graphdoc.prompts.doctree | Bin 465270 -> 0 bytes .../_build/doctrees/graphdoc.train.doctree | Bin 335370 -> 0 bytes graphdoc/docs/_build/doctrees/index.doctree | Bin 10284 -> 0 bytes graphdoc/docs/_build/doctrees/links.doctree | Bin 4459 -> 0 bytes graphdoc/docs/_build/doctrees/modules.doctree | Bin 2777 -> 0 bytes .../doctrees/source/graphdoc.data.doctree | Bin 692783 -> 0 bytes .../_build/doctrees/source/graphdoc.doctree | Bin 1034921 -> 0 bytes .../doctrees/source/graphdoc.prompts.doctree | Bin 465284 -> 0 bytes .../_build/doctrees/source/modules.doctree | Bin 2798 -> 0 bytes graphdoc/docs/_build/html/.buildinfo | 4 - .../_build/html/_modules/graphdoc/config.html | 794 ----- .../data/dspy_data/dspy_data_helper.html | 303 -- .../dspy_data/generation_data_helper.html | 222 -- .../data/dspy_data/quality_data_helper.html | 231 -- .../html/_modules/graphdoc/data/helper.html | 233 -- .../html/_modules/graphdoc/data/local.html | 351 -- .../data/mlflow_data/mlflow_data_helper.html | 307 -- .../html/_modules/graphdoc/data/parser.html | 487 --- .../html/_modules/graphdoc/data/schema.html | 423 --- .../graphdoc/eval/doc_generator_eval.html | 242 -- .../modules/doc_generator_module.html | 462 --- .../html/_modules/graphdoc/prompts.html | 183 - .../prompts/schema_doc_generation.html | 354 -- .../graphdoc/prompts/schema_doc_quality.html | 419 --- .../graphdoc/prompts/single_prompt.html | 274 -- .../_build/html/_modules/graphdoc/train.html | 191 - .../graphdoc/train/doc_generator_trainer.html | 321 -- .../graphdoc/train/doc_quality_trainer.html | 320 -- .../_modules/graphdoc/train/optimizers.html | 200 -- .../graphdoc/train/single_prompt_trainer.html | 232 -- graphdoc/docs/_build/html/_modules/index.html | 126 - .../docs/_build/html/_modules/logging.html | 2430 ------------- .../_sources/graphdoc.data.dspy_data.rst.txt | 37 - .../graphdoc.data.mlflow_data.rst.txt | 21 - .../html/_sources/graphdoc.data.rst.txt | 54 - .../html/_sources/graphdoc.eval.rst.txt | 21 - .../html/_sources/graphdoc.modules.rst.txt | 21 - .../html/_sources/graphdoc.prompts.rst.txt | 37 - .../_build/html/_sources/graphdoc.rst.txt | 41 - .../html/_sources/graphdoc.train.rst.txt | 45 - .../docs/_build/html/_sources/index.rst.txt | 32 - .../docs/_build/html/_sources/links.rst.txt | 5 - .../docs/_build/html/_sources/modules.rst.txt | 7 - .../_sources/source/graphdoc.data.rst.txt | 45 - .../_sources/source/graphdoc.prompts.rst.txt | 37 - .../html/_sources/source/graphdoc.rst.txt | 30 - .../html/_sources/source/modules.rst.txt | 7 - .../_sphinx_javascript_frameworks_compat.js | 123 - graphdoc/docs/_build/html/_static/basic.css | 925 ----- .../_build/html/_static/css/badge_only.css | 1 - .../_static/css/fonts/Roboto-Slab-Bold.woff | Bin 87624 -> 0 bytes .../_static/css/fonts/Roboto-Slab-Bold.woff2 | Bin 67312 -> 0 bytes .../css/fonts/Roboto-Slab-Regular.woff | Bin 86288 -> 0 bytes .../css/fonts/Roboto-Slab-Regular.woff2 | Bin 66444 -> 0 bytes .../_static/css/fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../_static/css/fonts/fontawesome-webfont.svg | 2671 -------------- .../_static/css/fonts/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes .../css/fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../css/fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../_static/css/fonts/lato-bold-italic.woff | Bin 323344 -> 0 bytes .../_static/css/fonts/lato-bold-italic.woff2 | Bin 193308 -> 0 bytes .../html/_static/css/fonts/lato-bold.woff | Bin 309728 -> 0 bytes .../html/_static/css/fonts/lato-bold.woff2 | Bin 184912 -> 0 bytes .../_static/css/fonts/lato-normal-italic.woff | Bin 328412 -> 0 bytes .../css/fonts/lato-normal-italic.woff2 | Bin 195704 -> 0 bytes .../html/_static/css/fonts/lato-normal.woff | Bin 309192 -> 0 bytes .../html/_static/css/fonts/lato-normal.woff2 | Bin 182708 -> 0 bytes .../docs/_build/html/_static/css/theme.css | 4 - graphdoc/docs/_build/html/_static/doctools.js | 156 - .../html/_static/documentation_options.js | 13 - graphdoc/docs/_build/html/_static/file.png | Bin 286 -> 0 bytes graphdoc/docs/_build/html/_static/jquery.js | 2 - .../docs/_build/html/_static/js/badge_only.js | 1 - .../_static/js/html5shiv-printshiv.min.js | 4 - .../_build/html/_static/js/html5shiv.min.js | 4 - graphdoc/docs/_build/html/_static/js/theme.js | 1 - .../docs/_build/html/_static/language_data.js | 199 -- graphdoc/docs/_build/html/_static/minus.png | Bin 90 -> 0 bytes graphdoc/docs/_build/html/_static/plus.png | Bin 90 -> 0 bytes .../docs/_build/html/_static/pygments.css | 75 - .../docs/_build/html/_static/searchtools.js | 620 ---- .../_build/html/_static/sphinx_highlight.js | 154 - graphdoc/docs/_build/html/genindex.html | 1898 ---------- .../_build/html/graphdoc.data.dspy_data.html | 913 ----- graphdoc/docs/_build/html/graphdoc.data.html | 1983 ----------- .../html/graphdoc.data.mlflow_data.html | 393 --- graphdoc/docs/_build/html/graphdoc.eval.html | 200 -- graphdoc/docs/_build/html/graphdoc.html | 3144 ----------------- .../docs/_build/html/graphdoc.modules.html | 338 -- .../docs/_build/html/graphdoc.prompts.html | 1090 ------ graphdoc/docs/_build/html/graphdoc.train.html | 712 ---- graphdoc/docs/_build/html/index.html | 135 - graphdoc/docs/_build/html/links.html | 105 - graphdoc/docs/_build/html/modules.html | 419 --- graphdoc/docs/_build/html/objects.inv | Bin 3740 -> 0 bytes graphdoc/docs/_build/html/py-modindex.html | 255 -- graphdoc/docs/_build/html/search.html | 125 - graphdoc/docs/_build/html/searchindex.js | 1 - .../_build/html/source/graphdoc.data.html | 2058 ----------- .../docs/_build/html/source/graphdoc.html | 2929 --------------- .../_build/html/source/graphdoc.prompts.html | 1195 ------- graphdoc/docs/_build/html/source/modules.html | 373 -- 109 files changed, 32768 deletions(-) delete mode 100644 graphdoc/docs/_build/doctrees/environment.pickle delete mode 100644 graphdoc/docs/_build/doctrees/graphdoc.data.doctree delete mode 100644 graphdoc/docs/_build/doctrees/graphdoc.data.dspy_data.doctree delete mode 100644 graphdoc/docs/_build/doctrees/graphdoc.data.mlflow_data.doctree delete mode 100644 graphdoc/docs/_build/doctrees/graphdoc.doctree delete mode 100644 graphdoc/docs/_build/doctrees/graphdoc.eval.doctree delete mode 100644 graphdoc/docs/_build/doctrees/graphdoc.modules.doctree delete mode 100644 graphdoc/docs/_build/doctrees/graphdoc.prompts.doctree delete mode 100644 graphdoc/docs/_build/doctrees/graphdoc.train.doctree delete mode 100644 graphdoc/docs/_build/doctrees/index.doctree delete mode 100644 graphdoc/docs/_build/doctrees/links.doctree delete mode 100644 graphdoc/docs/_build/doctrees/modules.doctree delete mode 100644 graphdoc/docs/_build/doctrees/source/graphdoc.data.doctree delete mode 100644 graphdoc/docs/_build/doctrees/source/graphdoc.doctree delete mode 100644 graphdoc/docs/_build/doctrees/source/graphdoc.prompts.doctree delete mode 100644 graphdoc/docs/_build/doctrees/source/modules.doctree delete mode 100644 graphdoc/docs/_build/html/.buildinfo delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/config.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/dspy_data_helper.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/generation_data_helper.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/quality_data_helper.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/helper.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/local.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/mlflow_data/mlflow_data_helper.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/parser.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/data/schema.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/eval/doc_generator_eval.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/modules/doc_generator_module.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/prompts.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_generation.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_quality.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/prompts/single_prompt.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train/doc_generator_trainer.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train/doc_quality_trainer.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train/optimizers.html delete mode 100644 graphdoc/docs/_build/html/_modules/graphdoc/train/single_prompt_trainer.html delete mode 100644 graphdoc/docs/_build/html/_modules/index.html delete mode 100644 graphdoc/docs/_build/html/_modules/logging.html delete mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.data.dspy_data.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.data.mlflow_data.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.data.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.eval.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.modules.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.prompts.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/graphdoc.train.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/index.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/links.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/modules.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/source/graphdoc.data.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/source/graphdoc.prompts.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/source/graphdoc.rst.txt delete mode 100644 graphdoc/docs/_build/html/_sources/source/modules.rst.txt delete mode 100644 graphdoc/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js delete mode 100644 graphdoc/docs/_build/html/_static/basic.css delete mode 100644 graphdoc/docs/_build/html/_static/css/badge_only.css delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/lato-bold-italic.woff delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/lato-bold.woff delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/lato-bold.woff2 delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/lato-normal-italic.woff delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/lato-normal.woff delete mode 100644 graphdoc/docs/_build/html/_static/css/fonts/lato-normal.woff2 delete mode 100644 graphdoc/docs/_build/html/_static/css/theme.css delete mode 100644 graphdoc/docs/_build/html/_static/doctools.js delete mode 100644 graphdoc/docs/_build/html/_static/documentation_options.js delete mode 100644 graphdoc/docs/_build/html/_static/file.png delete mode 100644 graphdoc/docs/_build/html/_static/jquery.js delete mode 100644 graphdoc/docs/_build/html/_static/js/badge_only.js delete mode 100644 graphdoc/docs/_build/html/_static/js/html5shiv-printshiv.min.js delete mode 100644 graphdoc/docs/_build/html/_static/js/html5shiv.min.js delete mode 100644 graphdoc/docs/_build/html/_static/js/theme.js delete mode 100644 graphdoc/docs/_build/html/_static/language_data.js delete mode 100644 graphdoc/docs/_build/html/_static/minus.png delete mode 100644 graphdoc/docs/_build/html/_static/plus.png delete mode 100644 graphdoc/docs/_build/html/_static/pygments.css delete mode 100644 graphdoc/docs/_build/html/_static/searchtools.js delete mode 100644 graphdoc/docs/_build/html/_static/sphinx_highlight.js delete mode 100644 graphdoc/docs/_build/html/genindex.html delete mode 100644 graphdoc/docs/_build/html/graphdoc.data.dspy_data.html delete mode 100644 graphdoc/docs/_build/html/graphdoc.data.html delete mode 100644 graphdoc/docs/_build/html/graphdoc.data.mlflow_data.html delete mode 100644 graphdoc/docs/_build/html/graphdoc.eval.html delete mode 100644 graphdoc/docs/_build/html/graphdoc.html delete mode 100644 graphdoc/docs/_build/html/graphdoc.modules.html delete mode 100644 graphdoc/docs/_build/html/graphdoc.prompts.html delete mode 100644 graphdoc/docs/_build/html/graphdoc.train.html delete mode 100644 graphdoc/docs/_build/html/index.html delete mode 100644 graphdoc/docs/_build/html/links.html delete mode 100644 graphdoc/docs/_build/html/modules.html delete mode 100644 graphdoc/docs/_build/html/objects.inv delete mode 100644 graphdoc/docs/_build/html/py-modindex.html delete mode 100644 graphdoc/docs/_build/html/search.html delete mode 100644 graphdoc/docs/_build/html/searchindex.js delete mode 100644 graphdoc/docs/_build/html/source/graphdoc.data.html delete mode 100644 graphdoc/docs/_build/html/source/graphdoc.html delete mode 100644 graphdoc/docs/_build/html/source/graphdoc.prompts.html delete mode 100644 graphdoc/docs/_build/html/source/modules.html diff --git a/graphdoc/docs/_build/doctrees/environment.pickle b/graphdoc/docs/_build/doctrees/environment.pickle deleted file mode 100644 index 0fe70a00209a6ff84e5556f35d5fb43bca76f526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024152 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

    ?v;2FwZyQ*hd-Z#Pwq`vL2S4IU|QrA6gD3 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 h0nAo@|1|M7a!lcJ136Pfq%7Q(K5jzld7uV1* zUYw^!gewr_H2&YdmKW5N<0*JZFTw!Y>3D>T5gnia8H|%pLqGzI;9l}qswojn5UlLo zO1;%x!oU+ou12?E#KImbL=90)5FUlG4(=1qNwGO5r)sU&Tc%nN!2n5LzXT2uL^GDU zIQ5{uyC^%Dvn3k76fZ!F36C2h?C!lGkl?l|Ax5xDTf^PqjXtP4#7Y4PM=exe9<^Hw zeNf;KeQ@)L3&i4d3lmP@9yawMJcso=U@vgD0%j%%XjBY$mtNTHlM%z{-O}^0Jq6Pu z=yYHX3@_~RqPf7&en#!CARl+#1bL$e*39E9w+>){1EyZ2P{{&p{~{oa(B5>1x9AA~ z+z(#CEnpD#r4ToP0e-o=20@S^q<>&61=A96W_NuCLD3L?Y?F|~niyW^>A_ssn;#6H z4-Q;#!mhbbNCzgz=Rx_`dM|;$(}!Sahya2k<602>B4_ z$*nz8ha8ya&ZQrXPWwZ#M zDcrxD3t?t9KCT7~U2u$gz6RDJch{TcNGPsi=%X2wmf16~0)UYO8isub83*9!5Csz8 zwtGpajqE4g9`qMLmB>Q@2d)R&6Q)WU8LnUOPt>8VS1|h3mjjmr1{O{eVOfKlsuRQB zElAXWdy^rj78^M+b)wY*EdeiR@RG9>Hz6fu4aPln11?xPx)S_=0Y_qbGR$z%w1!J` zL|q#k7_2)71ROw(0uC??NaV2hGVs)P3n#BU4{RmQAuh-9S)*ww=kL;HkO^Ehill@^SvIX0eS8q z5n~C?gTpBBWFr1xu7j;FDyVoQd3A8p8h0&D1uE^Q;TLdL(Y&AzZ%O3V+8Dt~EVRK1 z=kAM$lSrzXB&N8_VS|WAA}A3pFu>ZQT&r4L| zAEF%wFaCyG(4j_SFOnP`0(K`28JI^MPa#eYDzOQ9W=k;8VbTRZm#ewqnBmM&IhbMwuyUlyAzJKF(iUvo;Ql3Uzl1qbu!Bg{npKQEh}sms z#jyl*;h(D`F!122fGdLwecVcNEDu(1;Pw!qxD^~O9iaFWg!iyCl6MVr^OxK40T&Uc z6TftH-AH>_1myl3c8I{S0=I8vbD8{57+8Mub+n1}G4uk{BsR|1prJ|rCM4>i#^X01 zF@YUn+MTXkKc_-yjcG`)c9$W=hZ+e9ftBMxFtKQy5f2@TM8cF#HWQZ4Fe!B)O0ohu zK^R2vam@V?y4bkwf54s@7()sK2Rx9Ffdjz038_aIAvuLX1K4TCU;N(>KKMMW*>8;^ zI~X`Yt}a%)aWFL_yQoD$PB?whI=45XYPFas(#+ff6+w8sTX7cF)Ivr2hkP4NgVk`*A6ldE8iaa9u_Hs6{ZDVp?9-E zN`Au;H}Wx5vJ8uxY9OujpO0$=(X=VWXL3)swQsUJ1xW+&?;BI2J^Nc9o#;-SI0$ab zjfoS7KF-Tj2<~jcs0K#{N<#wc2JHH-wa)f#uk}_~hK?O%M%e44j4eg+I~|6Y2WPjVdGno z!9r``Yhkl}Y&`-3Wc2CVEtolA_;n!@4u=jJ&SBdJrzQm#`&-jfet8DPA}CP`^c=d# zMaTHVG;H^g^1?s%5=m?UE?zM*i24>(FV;KU$O1n7Y6!hXT>eHtzUyM_DpY##=%EwP zyTjfKu-${XB@ovIn}Y@tm;W!53^`ci;?of}lnY*Tr85&9jQaN>0lm|ifI#d8*usa| z!)>@hsxw9`eas_5V)?^2+>Zy%flNivAg9p4rOzl2v07*}@(t@|*db)O`M58*u$UmV z0cBPpH5$e%3R5?Qmf_yrehE5u@O*>>EJe=t2oosVK64D#Qvm1Ue_$MOaRjA7H_#q1 zH=u-*C>Ju}5I?8?n8NVYLHdc=p)WM#*u57Nd5mLI!@LJIB2!CWklZP<*YL4wO*OLo zH~E1=XWm*u-%-Ho3Rq1aZ?g&y0Enu|k6}K6ui?+CfLPihuf!AwBCB9H#($BU$p9f6 zPt|;2l*6ARd}szX&1jZu2h^!p2!822S;gk|w>S<6ImjWqj^cJouA0}tTGhI$K^13J zVA1{J(gLbtVJ-zpg+D7SB8I=xF5oE_oyVGB7bwyX<6@}`;Z;)VY6FTA4I~KdEYX|| zbZDlQ-_ZjB>j!;Ff5?wG$)g&;XZ%xs44&bs7R)5?~dtDA62WdphwoWbQ$ zRc&wUyw5U#UF;h$dcdN=Miq?HRT%IPG^OIL$>{^fj~|~x7Y~OlM6=x#y8;>osnSr% zm*jD_w>5X`MC)MZ$kC&n)$DTy^zNA@jfhO>Jvl$$b}0wchPIAwok`xvYe!14!XC z3J(KiV3FzI3i=|$!6wX@o9mGB)V`%_SyBbbPEQA^#sv-ni$I`iMWyY&8Pvq;D+!3g z%n%tk=X_)@sspeo5pp^~PM}^#s%jt_m|J}&qhyy5U33zFI7|sftpmqnKyZdBamBo% za~;1O-EqH6PLVrVG2u6}!JRR7vuUWpKO{ToE?4y{$q4GA2(%L?FlehvsDw@Q8gzYB z)wfF^6Z0u6vc|+^Sb<%0S(fZwA>XU(AY9y7bcSt2c^DHaX>>wL8X5!DV9v%SAv3b$ z5Ee!;Zpfeua_^?;Hw-6EUJ5}Z*l>inN&NqN_Ko(Op4jI+DC7y#$YDk1+(Q)`aD7^Z z4_rYPLvXb);KH#}Xy#=XXCe5Avv^4#<@rQOPdGeB9NhBxfY|n0Y{L!H9$Z10AFv(fybG=4#R*v3)Q0FdWQaT6Gz;F#cvCfKT= zJv$#Y^apBSELA$-c7!16Uj5<=P2O}DQ}})gt%hj4bIROTbdzAUNiM0u3B`CkFTT@G zfQ{|0!diR@e5ku8TCkk~wiAyp`PNY`HelkP;#Acnt|}EPmm&29rnHJ<5FZ^D z4r>?}z6FZ_ibJs=)MkGG7JlHkm5cZ-;s~qKp5SljQ@F2`qCw7EB;DeuoeRr=p7p?Y zgQzL^lhiB>fx*tf2Ktz5?&x7_(gkM$6$8<@T#f@6=;=c@M{OaXu(9QaUg%<%hoL)o z5+?^ZRzUyU1M#ux{h$>4Ta#1aNBrar?C?d%*~8{TT9wVqpm<6g&xE;V8M5{lV!XeR)kSDS_FCNInf)3iXg-@)|TBY6C~`!H`O{#M?{bwz`Kkh*s{}r zFn%D^(Z@r8WWf7t>zH^+`T@(nHOirbloU`G2rHmN3?>-Q^uV%pgsKn*AQFPP4ZV2c zF72zfrpQeyk!J4ALQNP6O<-mH8)XH`Dxhk+`^(CLR%H31k9`y@%*Wx^{hjBWS*d=5A8#xH)3??JqnGzR zcjkf0vY>vGY%;_U7htErOu@fC_UtpyeCWC79(wk4 ze9-A|)F$|W%nvmx8i{o+6L=5ODABoEM~{4y#7t2~;J^j{Hd^ik(Oxe_ExP?g-(T=d?1!Em9@MvIu9~f(Y9|-m}Yk=btY}lm3 z^&qZ}!R1P`24HR88$xuX^3ZhAsx#aW+*rp$sG+IRxMZW6^R>{E3myRcT><-P6n=8v z*Te&U&Y5sd7rKAdN8(~@t{Jd5MXzT!1KClFetRgBQDB$ul6KFJ+C!R}(ZDbd?m>iLms1F}+;H@+@KteeK#j`mH z`{}S>I`M#EN5+qe8<@lN?8F1lPSDVz3=ZIn$?e>jLjnHhJ9oqQX^%Eh5_Uv=J!l))wqZ9ikt3RrxAlxR>Sy=qQCAeuSoK~OM2WPh@W8ZIoD+Zo& zVTg&3VlnA4LYB)%s}1UppZF-!gMU>XVyFrlLRGcNgZdA|01tSC$jAW%90_;p-+AZd z!XPq}?5fW`E(IqQAa3YmU=YS|a}}n{aA*d8#*JJb0;>>U9|P0#;VYg$Y2AkZk86R$ z17NU>hf@!b;(%#MuopRWK`@xn;j)EM9|LD-20U5x&0`F}p4=S4+4GgVQ}6-6u!IZ8 zz|J2Tm>ZB5fk&&rOYmt!J;(`ym;vNhZ?3{V1;Ep81)3xXuffI-vTG!X(Ke-7??Scjx*3>*1Xf?FLyd?$)M zK&WR=r4aBR0~d?h!(9wN0uc;U`d$EO#sL{}e05t<_+7LGg3N1p@W4l+-Nk(|4T8jgBm4pT>IeYD@wlrW z1hfys(QDL4=*jy5|t#j@)?+P62^MoJ{=z2C3qV&sH&5$7EL&EJ; zH-OF!IBH83f^9(482)z!MsJW3gz@kwR7g#S?4mBj3|E|W4rXRB1u66Xe^>nJcdUqt zOlE=fA6X5;m~?kPM7KhO`tiU0Js8y`3E|cRNu7+GueOLsvd56#L$pyJ@t%b}MmnVj z+vDkDQM&#D{|G$n2~5DmPU)E}gL$}otV*p3f{YH};*J3H2Fk;;N?j4RJp8=`LzPm# zXtNTI2*706eG#(cFdQE^s1j+aUYLgv9NOR(-SP;zT$GsR`1IZG_Jx^gxD1Le;cU@l z5m&6>eNC5!0=bUW{}$+gGUcb>?FX1Qk~EQa3!lvpxO}Ycn%8jJ%CEm04QoaxSk?)r!0*8U$KK2;x!Tv|~ z-UUeS>$(pU34(yArzOgg{QSIYdOuLWCxR43Yi%e7@gPy)BOokj$%Q$KeF7i3FMZ!G zNl0cLCym`CnsJ>njqT~f<8hNZZ9J|!<8j-h({b%_nn|2alg4p7opkIvkH)QIrx{Pj z^|Zg=@0@cV|NsBnU67E}y4jJ4-T!@^d+xdCo_k&wh7l&VgsivPdl_yKxWP`PN-l); zz%z6WshH48wW$==FD`z_&_MiJ+Gzfk?_cRE$GZ~LEt|XUG)|>-{!7RH8OVz#lQR1Z zbCppu-v-eS(w3^eR96>X=bTC$h~Oi1IZxt<7x+;R+i4nYY6mVTsULPdr7sF3g-dQ6 z{vhUjXzJ8gu3?CQ0MYt_&WxF>q_!{QDGr#R=SGQH7zeSmQN;bKbbQaa$W|nA;26l1}iJ$8I}~E^!L7AeujRD$n&~Z=T^M^S2- z7vH#bD?pO^&t*RDfO$#sY62-?5ZCHkvGf!jz`6hhZt$9vFM2Vz!Jy|Za+FFCC^J9b zdus4x0vE%aUA2VEYrR{54oJ9lE2F{8mV~AxMVzpPE?1EGHL1R9x39GeLh&Z|DWp_N z%-idsK$<%_H+Xq_w3P$*IcV$0M;g4cb{Ao49!1Vtrav*L5aMq4wwwCH@*qMbz zEcTl*P`1aELbY2@qv&`LHK1@v7_@S9FTDosFB)_}wMAVi=ocm!V-<<1$Q(&FQyLt< z=hS1Hryg7FJ@)+kW5fB!7R-j=kT3EqENf3rKK8^@2p`apsN@uJ1D#g-cOaqQQ-wOQ zT;JRna3OIDyr3*BBq^=s;MK&NKCEA zKKR4UCeK`6D|mSzK)E``CDX2kqhlzE4ZC1G0;Oj@fvpn&!&wh|8wVDXkMk?|39`|6 zo^6~O^3Uh}#xlJC2MH#4c_R_p@)|P;awmd22^EU6nU^xk5Dp)D-=A<5z)jJ5XWnz0 z9B2^Q=E$f-p03$|VXX5P;07=n#9D-|l}TOsQQ5l+P{*&qDVgzCy~DA_03z@G8#+39 z43p>h^&6m?pl7#w{24v~Tp3=S@z3}a&Qv8PpfsMqOEobiKXg0hghE8H?;%5;oUzGP=EmjJUYJfD&3j0v3I{y=hQ`UK6yS0KvMkkpN4eLc`25cef;ArSpe3 zpt#YoQ;{=u6i~(}pXzhN8yRi;PY~OJTl`|^kIc&>(?ZE7aFutJbHbIIXa|0Cs2Hqs zo(6wK7s5v(bgu@{ZZ|h?o1|$Hs~d_H2ZLmhGswCpt`H9}+RCGH!A)!Ew45=?j@msM z^usVeunS6BI==@^noK!4uR3R58%^QEwg^&-cwbza#5vrvl9!w!%8*1CoTiWj#DjeX z^zlU)9Qc{tDI_{`(=>KB4`PqN|yNq}CL;{r(-aj>!h-?!o$sr2Tl)ALAU2ZiJ4&7(tClGa`DdHSwl7!j7I7*eq$`0e|H@-aT81AQuY=w$QQ+Ap#(%>NVjo@ zg)?nzqXNo~zN}sH1Q7@zYlnM*iSwK)w8jb=Dtas-EyWU?5`O+86dN0ee(iW#gZ5@< z7O(}xe6{uLHk0OV0GaSkxtN*zitSi!LF%aKu>=;kBuOC-Qw(Wy4S@)5{^aVr`DQWC zQ)m8GlNvSPEt5;qakPOv@}&6@6j8{wx%L_rQVC+k5+)Tgx5o`EG{e<88G`|aGX<4I zwm3CErSI4xA9^|DqO70;$*6=68wBnnqmu;&$+ zE^*z2_zDd-FP-!w1~IJdWFAa)G}4eDU5gl@nJPj%oag8=xuXVj92$`{Ez2H|M0K*C z*mnqQy;Sb|Qo!S`PdeKj6XKF_m=elshU*GA1zlase2dsQsM}S(uEl(0nln78tEK*TWH+m#wB?I@%2a z+4Q#3hZ1vXMr6}ucA3l7eA?T(1~i0;0zXzE+yU*jkdGg+dG>EDV&$w+t_CQ4ARtY< zu7(1SL`?~`)E-dELzm*DSb!5H<$Y2q*Cj6?w;K{iDrGJjfd9}Ldh0GyC}wC_2@p{~ zP(Z~^TSLWqjS4k_@-i0H$X@eU^~~F2aDD6;MSx-Z7$pe8F+vwvn%1=}CTw=8h zx$tHe(^cS1z7{}CaZ7Xi6`XF9^I6~U9DcGl+Eug!Ad1hVI%UT8m|B~o=c$U#$&o0$#)<3|YN3?3%pXco+aW0%k$?B}hd9A*lvy z?oidVpmp>Tkh%Ysy6Cv$aNp+!trck=tj{AGgZs^dG&L=W$@Q$`VTMyKika29BxI0@ z6nv__5}aQ-SEsj7p=VL-B2sJKJ1pyJb-!V$1deGKF*@&_d-D$FMhQxa4(pVIgb6o2 zm3~kL5-2!r!vm|=h;LS82>$aiJ5!7ZeOaSbA{h3_<+1{tk+D=Y*|A!qU#F>XbhQpL z6X|GSkocmuAaN>S#L0b)|4_h*-oyGzM4N=~j0WuHVlW$%frYvV>kmmKSO$beq6yz3 z(dmQkDPCiaku|S0C32QN@J0-x)zB##5$u8wq8g7t1gq zths)%WajMP*%@Q90>CojMCvW-eXaXRPc==*DH-cdx5opTdC6csuS=a<~V63b_?~ldFrIE^Vi@R4?Scq15KoYO+5orViQ3)4I^0!)3;DLp< zLG@OhBrp3$Q94iEoz=B_el zt}IkKII{j7Y7*V>*HmADZ(z2;w~p?a?=Zg@l>p>5Bum|2aBT4o?3OVeBcvD`Ax?SX z^#;CT-Su{v@hUq6S=+lU`PX;wLhap1Ab1texTe(=x-hcsJi9lo^Km>=&t+l+%Zj6i zN-^I5b+xfKBbd_Fx}X$`DFq}U++;-yz@%9SJ`YhwEJ*BuY#=5Vw&8flyY4W-u6gZ^ z(IK9e$WQb6si#whvVg{Fk##wr1UV38*H^e0I|hs^cR-TBD4>5!5T%X)l6-%C0>1K& zS48HgRe_aA>*i)~2S4>wESy{>Abtc)3w7%vqQrLXz)sMJ|vl0X2B8^ove3VJr#tPu~l+C9v)09U2(LU zS%5J{(ib>#&DqkG(i}G~fBdqCXlb07WTMIXVCDAT_U*lH8;zhmgLnxSU}^ZpMNXOU zW*##D3;epAcCc`Rqn?C~p%eHbsiE1f$jxWXPi8C^$4yMcc@YH*GPTs3FOe008SZ$` z^QeMlL6jbKeebySg|x{G@QAYJdyWV93}n%Ov;^uble7!AB~Us~0`o^j z&Z+#|gP(Uy5w>=Uk`@wl;PQHVytIt!d=rANYw$ISG(2bqCtNaR-bFTiOQzva0U~s! zr27o);>o?Lw-TJ*U@p_U96nhg4GnnTkGG$V*~E%6i7JMJznOm_6`W+|7Cf58Erq?T z8m0J}_pdH{FN`8Klk0awnb>RB zcFD9MV(91SAQ~97D>Nx6%c76-(t?Z`I5U`G#jlAnLGi6(ej@lnxFi$Suczk>GG=7S z+RE9G*3=!nRg(c)W$f+f|F@Lei#Do&hv%fYMW<=Ay0n}s_wegY(5j_%# zw7PRI#0QyayzB5RARwSV3}goS3ptmtX5qw zgWT22qI_i-2V6@%vvgPa!c*L}(0x$>+H&){L@aqUPsz1x%b4 zG2)6#3T>Tb!&8gQ@SICz6y+vZuH3}Z+ZU_f#XUI~4w&2-2{mo|JSgk&hq;ncv8iY@ zVs;;5t)jbzI*+9kPQj4co#&2O&WAVIkxh?Z@B!C7D9Cs3_5(ZewG;>i>I#IihXMyB z5uWv@rr;lXhtEgZG0XLYJj(TS8^;3A15JM7wcL)V8(AHUj7+?u_P>@x3aJP$<- z@CV0H{mf4Je2Nqc#e~w!AND+n6=wvd5vRSBLVAj~lMaCq&J@!t@zOojAf2`Vl0k}b zi|HW9Nslt^1IqQ{Ri*m|N{m~8f-PhGgRnprBQKdkFAMI}8wZ(jA>FINnVl)%bs+m5 zAqqTl;oJbKl9jI;kA^Ld4I1y@YKbWrM>~w(>Ed+Xr{eN{sq}rfGmEc^(qJ^&9h9!$ z{6x9{DM2qxE5t0~4nfDX-TROxY6p zep**#-dffhfpN!X|FM4)xusX}Y>64|XT7^7&6d@!0^)J@X5Po0$>2hsx?=w=CYDM~ zY{xp1Q<&Hs+By=IkE1&Sqdtj|h&tqoU`t`;+?|rLzfT!g5sa(A4UkBoyQ5@kJ0m1X zc2k~=GW3flSzn=cN+5Gg+}8}){`l4D3L%Fc%Ai-v*5g;}jW5~6xM1rpOXyU@nYTdk zJx;FyR^&+so_;Z8d8atAfCIRC;y3b!kgVP!i4sSKo)`vf8$)Ce);IPhcQp2tVJ}#o zL9SQu2{@|Lua{Z9MV{)T;bM!W3&s&ofQN!4lthWCCXn2c>j@yW-9!bDG-aJBn2AAda*)P;Vk*BP1A{v)yCTuUSWC@*u?)gMO1r@=SoK^NC)FnlLHE zE-ufA;KD;V{ysR{QGnpTo7)qXGZL`~-zT}|q{5b32A6SGCOs2L^v-~`69@sRAWRzE z!tpoSO4H(D6D-Agktqv4J7~1YH|?dAw3o54>Sba8>n&5-_wb1>zFB{gIe94j&?V4p zb=n*vML2ImZoqQ_v3WsgiYvpb1i7ypfGf^S?Nc6R_L!9$@#yYgkBad(C`{ZmZEKx- zDmN8|YOWA@A)jQJ?BcG5ymio~>+LPQLvZ@3Z+{}cOTt}&<>O5g4bnmu@iVN^sZ7ly z3|<=}(^!8FIg4o*F(ntt8ZWJ!`rfS~#TGl`Pc!}^4~*Zs0)WzNvRc7-#I#-a$VYZ#e`Kwn%KMRV2{`hBjiC5Cn9k{(s4@4)E?sksgQo9$5VKh`r}R| z_kvd3f-9nS{A)w$oge6a5+0C%dUx4gvrlv!O~4w!C+zunF)h5Az+^Ck)e+1Qh)SCJ z$UB@{TD^I%i%h3{XK|6Ka%)K>h7Cxg_hkg4w0Z;esl2<3G`%WdObsGNEG=GpVcXZ8 z0BzRxB-P4HhAhmF^*py$-9S?GgdWzzuH)N0E#TQ*n|esW*nTptK>AzLvj}wc#4jMH z9)cA+dkWyvzqZ$D?NpAO@FkWj^44|{b{{QfdzWmBe)}h%IX%y~J&HrY%AmoX;2myJ zK+5mbf~0e+a)9m*bn&!XdDfINGo;h8u2lg>oC$fdHX8A*fE5^(>i$&-OyIwUhtHCqAt`ZIU2_M?ed1yeJuQ5xIc9wVQtycELf=m<_E42C)s)bD_V4Y`B?Iw<^x0Rr7;a$OG3r;{y%m%}FI!Fd{*dC{!sx z`9WFGQdce$pn$iW{RpZh2-sUgq6C|DOOr&zIg&jih5eOAXNB1~Y@dGO6Q7)i>2^$M zY4Pd=7Ukgv8;&+^Th1htF_Fh)!lWnNJHG(tS`YKk&zopnH@BY8k-$xX^v} z3rohSbj&4GX)>;2ThM&{s&5mUvU6ZKG3Aamab|@eYipGVJhIuC3u+dozyNF?!6#mR zA(20p*a+<@2?EXl-X{pFq(w_ah#6tAl8Z)K8S5X{QApHzy~@3h8V)NqO~FlSK5G7M zI5H}Wbz6>4^@^SnFr3qV+>qr)#ZocW^pXl4TF|jpDfJ%OQuEA9%lWp23aOAJe58~b z&adGW$wDO6K$J^@12I|4JKLw8LXx$o=Pd!CXIV0xU#jRGV;Ua%!71_wOTw~x1yuWE zIJ0|MwkzeG$0mo6c-TpndpOpj%SDi_>@jDovBVG4O!S{y+k(Y-$V-_+$3@5`C$Y;BvM2I_Ez*$zP^U&COYL&VV%79<#QBp<{x*LTmz z7XoF{%k3xFTtzIrvEj6Dbzh|V1^k>_mg<4Tr+L`KZLWKl#RYKo$!9+Csi*K7H{39o z40#)G-LmmDT-p7}Yv~;zyt&zDW_d<}CRA)}TW_Ie z2goTyRnB5`)Q?{>F0F|vaxtQQN#m&yw-_La?*`%DR5U9d@Z=|-`SwrEGd?kPOOI}Q$mX)Sn z-ct`+b>OuCq*|b;$bXAE&6Oyt@pnuu-GrR5W`yUiOHkR^7P^%zidCjgCUNJ}pL+U9 zaA#2~(g{`O`Xa(8#*_E89Hz7XEZl!yF(zr8K~hzY6v$1_(&3xhds7Y0e&Wfep8589 zsHn{q9JY2uw&Z=78w!hI3o|PNcMLWT&0^eT9_bfN_-{?u1;u7EHo|7_Q-s~CvDJh1 z%ZpW9N2E(0gp9HymTapHOP_{>3koQR`IOV z#08>M+q6XG5#*bgheMXaOGN4SfcT7X9e*X!!M^G+DA>S#xNQ@Ih6aiCRGDxtxP~pS z=@IMRoTzF}#pyCGi&DW{3x0}IpQ{FmW!dsBg&jjf@%ZV{vNYKamNfT>F~KQR&du^F$rV z4aj3duyB}2=R^+a(6w2lmeMEcOw1X4f<5}ST6Gr-rSLmwQ$Vr1?x%9|aQaQnttS3Z zdAc0GxFAE~VMKYErcE)46;Sr*rJAciG}bmwianDBmNt<3NE$wq43n=}tpRkx0@HJ5 zhNNE>`+{o|iPdtex$9BU7E04QGPvt~6f6?t2&#vaE=!9T#ME(j5Izp;O)fBetZq{6 zlt$_c*LQ`VuRxQ+K{O;*RWM#>WqG2we1$vU738nG4tEq>9+=FzT0?(v;>06RcNdi~ z5PchS%P&Ke+Hh$LW~{GFl$ufEwGD(mJg-2B?tCOg1u#i->Vo)9cN9y}r!@`0c@G8r zDT9Y(bGSolsYrttcxTK)ekFfyNL!FV5Y=D@+7}wC^$WY{P^asx}4Y zh+JsFNgeFH0tucTKoQTlchz9mT)r;5=`HESuiM01f5M&VZTNh@`N#|!c1aI-eH#E90y9Kiznw0tL{&k5)w;9({sl+mE+ zuEHSAbJsI{L(j+~9~(kFm0jGSM~%tPHkW*bvP*T$1Ph=E_HbBR&5UxCX;EM@H~(P6 z#YwMN&Kb2;Siw1tg z$=DcLD8oVV0c4@6r3gG5&{nmvpoJiOPiv|{1DAeO@R4~ClmX=jymPj0=6HiQ1+ME& z#eM)|FsC30b~Iku+jL&}l06*47{B0>!AIRGQJ|0^*abH;Pj|5qi4(H{F86(+8Qb|| zq%|W;EtWQFvt_}q$b~okoJp*U%>g}BM()6Dn8=KLA5NvV@Zog`G#ieoJ&y=K>09{v zHb3%51unzBufkR|V%_=rpW&@P`AN~>f#b1_GpG&4&~qqQ_x_J0N|GrVX_kl1=- zXc$lS6aBl?}M|*9)g?tZp7dceEu|f{oL7@m6kMOJR<2}VU-b98u8Wakz<3uHzWY= z)qEbY9)EJ|fT5DLZnAY9BFL(wzdDMbAccal)(D)d(Oi>iN3 zbT>hSMP0RRQ)CBkZ~o&~51RWu%)6L#*BtyXZUk*y$&2P(uoUk&!;%fY6)`XNJ=mHb z)ZN<;lsQ%KA{=Qm9!mIPi{_@hPXZXb?iRvWQY@GR9?+-@T`c7RX5w^pb~@_$$R+QB>gKd;hKna6(aRG| z!xYo2rxin?R^%z^oPK+Cl~i#AFWJ+%N9RDzWz459W%V>09|(T)lw*L$lJnZeNk^0I z93D^sUOwbY7EtaU2}bBTXuQ}lJ)GFwR#3Mi-40dS4KXPTuC`~oIr4t{fn~7oV_Nuc z<8-GWxkABZ=Z*^n(6{*0Z+Tu^o7o!>^nlh)WH*}h2FOC@I9_qIX%oV$1-hmQC8hq> zW?m2WfcjP4oAVCYOT57I_j*LOX{}83kk*d1_!9+~rZ*~hA2U#l7gv~_PyBld+dju? zl4w;`Vm29CFgxJMe&wD`5S&95teey)(gj12L{}=)5pE*!cdAMPNqDzxwo0&U5HqlMV)~8X9&r?ImS&~Grxq2=oRj(@qO89tLg4L1S0v83`+Tk@pWb*#*S4$-0(Nas4DZbBO zyRG7OxT`sG^DmJvz(P@knhkmvUWbGMONJhM-?E-q7tNW2T3TWL$}5=pdlt=60Y2`q z+Cg)-Fk+rEf4#G;Lys~kni-ku4<-{33%qlit~ZepxOe))h2)dLIy}hh(u^8=w|vi*eKo#+b7+6Y6ZUC;p`f=0k-G(0)@X2Tn zXfnWi@HDzLb1XvkGz`xq%>n$zTu~!PO&e>K1}l?SiB_%2;Ps8kjA7IMzP+`Vd*QO! zOzl|08DZK$*fMg4cD>jYREp#SbW_8X*>G(Qv8^W{<!Vw2b*c6JI1~IB)omR+)U*L@;hYl$0th;i=I<5;!VdhPt4M zZ|OG36x~#z$|}VoGnpeFRYA_FUU)h@0%gxK#k25CNwV{tf4 zTq}b;sIJL1*hhx*FHe$}YLc#opiMrX?1jE?b!~a?woiwVXT8T6Ifj28f8{mBkaf@Q z3KB}p(eeB-knimYTqH<66W|8H26uaN=Px|_;&XF_h7PPm0Zg3{1(qm=TNQ8VzQ(-9 z$q<72dO%16r1e9pr6R#D8D*9h9JMyFndi3|QoIHAInxKgSh$3MJ8oKd?2WO9<%@;by^he{~EZ1z*lt{Vsg`00xyI}vbqnu zAv_{7+o<=0mmg+94!0UUyUBpR^k;Ce!XF90G94oJxKaV&D20m@jtCf2YeVD=-LO?3 z%ReVc0WuP}!Fg{2=a$bJah&WunYn^CxDU+$oHpOgyIYRThnq~vYz|_v7p`Bwdi|?P zST?cgWVN~UGPPcBo5O0RQ}?$@52B}Z>~yR{#rO|A`Oa-`L5Li|O%b+Hqp-M#f`llq z3m`iX)3Bf{)Ivlu=&4(d5=9wCOL|Jc#V-YbnZ#Cb>e7zZF}t^Uke|DL>BgmVXRmx! z2`x?UAX=kHhs)FWZ5-z@;i>c%6%Hb~b-b(k78c~Z9Q`9Y#7WEqq=W`M+KxLn7}Y+c zlq#3hl!zgd4uurbp5GjNR&PfNv@6%{8ZQ-DB9#35Riz@%R8Zg$Ktx3)4Q}2g*^D48 z-ZQ^4@0qw`#t69gHYfk@w3my{=qiQ>w{y6YbtS>$vi{d#p076l%WN ztMFW7fR?9DgHdO_cWJ!6Wr~R8ukG!i`r=y%=0OdmZd!=h+y;s%`WuY*5T?x=)Tz(S zUmR0cl7YjrQD52NhwawSnf~6^EAR@~lH%qBc;6GC@ca>u{5*D8P~D!*pp%!T{Q%$= z1Gb0|1P?E^64wAQuh0n{DQOltg4X76>$(k7k!cg)vk7%Uo*t|52URbvb7`5*iaHQu zfzTF$qxbrF?rH~mkQ3ALU0yXBP&u0x$wp;TB~~-9UApnM{j=yZo$Ca z>HUzJB}1D{$9$k$+F4u00^))aPMzuHydo>xP62$yD)kRt?m7!9lEQ%M zMVr5#rN|pWfD2N8Ub>1WE#TpU95i(`0)vm9gKB0$^Y1Hp8AN!hk%bo$#R;UPYT$vb zn>hyrP#@wHkz%CLS(k_!yByv}qpHzZHMmu}NzK08s zO|4*lm{e~53Lmr zW~*73vP<;Q_Zl~6Ji!t8$&5e3J@e8DDzl>s+-DZy>$kECFW7cp?9W)m<+Z!cD9*x_ z5O0zYyTrT_M<5v$AxbEnfuasDvi4FwXbX;};|ikd zqAl*|QaDJ12%gM@rb-G|wqG+{dNRG>JxN$2_=Gg`b{dJnq>!gCg*N0;yu=5tnuDgv zVkxdBEin#s**P#dimyPa6{!{&5OkCI=qiabc6^f^E>6ZP+~xIBmJ&etO_FcD5;hHq z5KzNH&c(+3Up_J|AkoU4&D$oG3ov;JoNkV0dBkTYyJ&f zCY_YwaIYPR|LASc#=R!@u)DVdMAk5~Wz@j<45W%bi-XiQ5X_i z$>Z=KGMGPjn6paoAYO2xp~6Wf<91{#V^8J0Kz_ndn8)gcwv!;u2RSR2*AQ%}$0&VW zZK#A=_Rk;mOOh&E?Avv{4a#Qn)wr%Pi?!hx36QdS0#?%^a-MgiV1iLqXyD6ltoYe> zXLY0Wi!Kq>j*&9r(XmmSBAIKJttAgn@sS3a`W%=?ctNe>h*08G@OT%>?S?1gRqzCz9{O zpm*Kg*isS!Pjz--3r$R`a`1rH*7Qz#>OVHY4xV9JH795%DZ6{L>kTtzD^dh|g> zXk<$>$x@zeAk4BfT4vT7c<@r(`NGgz*W!`F3c{1`zw3Vbv(MJyp<-2R(eOt zSsE)_7zS145Uc`uc{1f9MY4g^oy7h6MJ3Z%G_KFU-pU~QZqt#vsr&+B=d@J@&Z6KU z7d{2;{@Sg&m2aF+xZ348*{YXvbj6QI#1YOvg_y6wUlfb$oDM5Sy5w6CuTpOkc=*Z? z@g=hK7*kmioN_(C9=vq6)=q7&;}XUE4G9gAldP3WX?9 zC^iH8K_U5&h2^(r)QN)JU_V3@wQS8h(IEl3q0QGBKnX`DSNPpbiCt{NTxLt86=sWfwl}<06|BsQ5J}!)nNd~8jG1~St&6= zUv>f66ro~%b?pk(P?9f-^(vV>Lk@K=L<{pQb7#ABoKE9jg-|u+#EnBQ9f(=o!>2oV zWD<99bKBlJrL&G`8WFmx zrL2^?2KB*z< zp4fsvP@)GO{GwBVg^f`QE7ocn&pTX?(^KTzG5}&BsJ#i>yPG4{UmeAHVwqmhp#nMl zvM||OM;zf4V&SIF(q=rJgK*!q2^99Ucu=quJz+Byd;11S4F5xnZOf?wxAw@8kmYfb zJoYMe^jEZr`g2RmD|09K!N5hvruD(?JEM3q%+M^JGocSEZqJG2x_cXR^l)hxDVuOt zU*DsW9sFbM^(DTO#-M!Y6v-^yLDe=TCq)+9Ootrl4WP(F8!8K+Ujyop40H^qYWECJ z0Cw#uMbNW*KWJ)NwRHk1&JE@UFK>^w`dUC&t@tWtA}IG*Y=(?muihpK2A-1aKo1F4 z9tDf!x+2WJ;h`WHEky7>;>T)4sOW(6s^`KM4q(m)P<%X%fJN_wxQ00e&yMslalat4 zDt&vkL1K2+po&VF#wlj0(2`Gm5sEd@mB?>Fy6tc-An)?Irwu%D<9e5bA3`%*Yza_3 z&`8s-t^^>JQ{+n|3s5QkUxYqE4;=ezF6*wXN2fbP8Xy&jg#x7D@Fl)bzP0LAcgnS;j;_0oX|uCU7$3Jb!vy0?N1 zC$WJF^c6b~$kCpKqtCRhj;9rwlFHPE6&B4tWCeq3R4amKnyqNg=%4NrWFU|yUF}!| z@B4%kG$)xm&fz(Uxp=aZ>)5bYj0xL6zS)CmowZ<9AJC^EZ9>Yv&3(g=8oe**dszx< z9_y^CX~9+@{}=byVTVax6J^<+!3fHvLwPNnaj11bbIS zt?Qu+1{PJhV2u4CPD^ouLY&=}Qg?#q+Lqw=11`RSgCO&3APnjDXzLOh z)_q}oDZt|?mh$O>335D_T1Y*f20>vhE=>q_Q!EASwNeG;D)N)c->hGLB^D3NRcAh*l^Xii`!E(7Do-N+4uLvw<*_L)? z6OL^X#00s9~*QjeK#NpQ4CQrT(~bw|k5N7|g6E(let zUQ&*9t^&xtDB;9_*B5%r;6tewJQGQhhjizJtHf|fF9E?upYY6-+e9>r- z*Ia6}BnBl!WGM>4!tPsUk+G}u^S!4Ar=Ln-0ogZzna7LyJf6@f4IC^O(=0n;Zk45w4tCiEZ&`lj5yla+h8OasV^V_rQ!Iq(7HsEqzYwz+qg?owcXb(9%yc;Pz8@QJ+kw*<9Sr> zxn|A0Fy*>tKzUlgl`l5WTLH9)v1*Q<;f!z@+fG`hX61uG1&6cLZ*K?KIs~Z+LJjZX z@EX3Pf8=72N+OX7=WS6*8L2ZJ?WWd)H&X}h!@)x_nwf`85d$me!*S+*&me&mzZ76) zT1wFvZ-@A!leaa6M)=C~bsz&WXrr3>*`AB`Z$cMZ4K@M7U>nCv^rvrF)^f7pR0R4c>&Rt)XGF zDF}ORUnA3@PvH*CwZSNKJNN30(g6s}%(%lrBNFE3Zj^OERt{dkq#&Mx#46A56b#nA zyp@}659%g_$;1C%A&j^Mj<;V&b`$Pu-E$#A;v%-{a!n`@rg?Ik8$`MEf>g`i4Wm)$ zcVSqh)3Sp2On2)$lv%4vYSbe{H2jCS77nlYgbwP&! zj@9xeoT|c%yIX;|#4v61H6CttU^@smb27)(J!m++*S3!H9v?WP!V3s2REaK|op|Jm zrYf@lYOrE_%7`CYip_pe7qmZ%*V6CT&m*(FbM6>siF%X|N%@Grd^wj$hj>V0v|>Z| z8~ZfQhVw|3$XdM1$aT#iqiUH9n&E%6$|2!pN)t{%r9l=DKrzv;Cl^D^weKu&Umesm6z@gUQFS@_KBCW3i(2r_s46E}j!?0MG}er=GFi zds_)qJtOPb5Fy}sLw_g77Y!455yV(cuwGCREX#czZ7Qo!I;?N*b~b0($N7MYcVsOl zyLUnB{JBK;(28iP=|%D!BVC)zT|(HHH$wtw5UG3Wrx(*LUtVwSu{k`k`9=QcTk#*% zZuIlmDeFP`zk2g@W}m+W_4mL&-;#D{UW`)TK@fu*2vDNlKmheJs8Jw~`Qj1+vPo@xq&E8A`hh3V1o&|GsRka}%< z6YnhQ-Fa!7=YkIB%&J>ymI)Q|HPXauiSdAGg9-UZ(A#ai3=kUJ;JPA$f=qP*viBvp z$FZYfBpoZ84pun$w(rUY&ZE!Z2jTcA#c>zc>7C6IX`?SQGr)lXj#3tUmEKWzbDh%) z?{^cLM!?a1z(!Z8n2VZQMO1@E0(#=`at^`sMfk)f5mJH=R$D|t5;%9rZ0|z34RFb( z0uxP0c44HsW3nxQDM^pZX1?giQ3c(u-gd(&XzzVBI$Bv8kEQH`%}W#(=cb+1G}Z)< z;_=3@WD0F`6SU^SbUct&(*za{LLQw;+{zUsNX0eqmRjL=*P<6HbfM5d#O9zJe-SM8 zc{}qFkh)}i9lC048xR~0WY6QN)k0n1y8$-2bI`GLM-z^Mb;^@I0A_I{E@T3jAU1{x z0=ZuRV>|cwP^nIt0pX>kJi%;sfH*M&!UjyY7%M-4E9o77Dgg41s*tB(4md)ge}~}4 z_gk!MCWv&-6f-iM6OHNJS=^2IaEJOTk53{f4&GRJ(Wj2e(bk~%JbY4MTG9!Z7>D(P zYu)BD{6Q#w0J4e=CK=HvU1m22vyTz6`9KpUX{a-U*@YsKJ*3erA|Vh>NgqM^#d2BK zG%905h&ijP0pSNxm-6vYB_jJtb)~#6K zTem)Le{hv=;T=FAdunMW;pnK|eMAxu#?;TfKom{)MeDc6z$IFNp_Rk0%%{4#2-XJd zlO^A}W!$D*C}*8yByc$emi+pJl$20Pn3{W*PuoMr9|F}=*L>)J6@G@z$_ zzQa3%ZPeDInUv(3{HSpE8A&2sX#^+(tlk~sgoj^>uDLn?Qq~pOnE|&k)~F-Q?qtBC z)}7WPu^5&5C2vPiuHoOI z3;S={x}?(9Fs#$P#?eRc1kCvmZ>&cv{>vwDE@nBeA!X#qiLy=e_Za<5`~r_Hv7Iya zPaAR5XJebOv39;gn+&gngY#G@H8n^tz@w}^b`TdD+`N+`3E0`{I&%aUta--o?43ko zxAVHbzL8vTjjh%ZlwkF_`9Tkh3pc*!%7ukC*|fOH+=8?Kk^hV5()Rj1GT6@b9_!7W zbRX|(uo5xpcOTK;D=55MS)(;^Fn=hhFcWWfQ_#P3^Ylygyr|Fs1*tY#hr1F1y-nxag!v9%P%B2>+^vUW9i1#otE7o=`HQ#tRp2 zKUh*cNJ6)@@m-gHFDWjTRY}FEF(Z4K5l)wqYO-9<0D}Di4{D7~Q#jSz*x+sc{0{qv zTfFF;WtpaY9F~YV_}^|Q3ENkV5KsoLwNT}HD$#u$bOKcLhihv%$_ZOJ;bS-&;BD~s zjCrpnV$ISZ7-?n5(Zt{)^6`<0!wn(wn8Sv~n9!t5wn1RdOK{N`!1uL zb`G(ISPHxOyv;SFRy5X6n77mDzOCUtSg{4n{zv5^hIdc5=h554B(x%oUrz&T+Lf1i zwOfekdZ$$6N|wW|L*)mI^Q#tOGi}S1=ytVhjp{bO5-Q@C%HxSVBs~2}1WvJH?n`@a z4gMoUefwg@=#N$Q+qKi34TFV{0=iS4zm;_7hX7d~sBd?%^<2ThXT|?l_{?;i*fN`c z@!Lh3y|eL02W$Ia#n1+UVP7}9_Q}?Mri6lr=TU~u9%87TERnQ6jn#-HXMv^7g6~0C zQD5TtO9yh_w;`+?gefOOdvx1ydM0Ex_oRwr?YzItjZ-E0m2kpJfZW0$6<^DERO_|+ zAd#3FqGyEMd&Ip^QdMZaSHojva%XRM6>9aqOMO?MqCK-%{LujW+S-`HgN%NB{$>l= zl8`hMuEjLkCi#Af4cQjvwE$2Wi(zv1P`#S z=vXFm2hNdz0D0XfE89C}Bg6b584*)y{xw*ZP|pc#f>)Xl2L@9Y_dn=x3Hp9^Ku;zk z@v=342cB@ZV*a5%p1+*a46bgS+dw8ET<_VgSo3CM=s-w+Q*hSSqepuaAA9|)3m2$> zJ6Wg(ri_M++j2H=jh$QYZ4rQYT73)ZigEZau#NXrPz*-s3DjioUtVL1Rn8MEpppA0 z+RtJiU`G+7S_e@nsToFj@RucITLS~};NNHz|ISX?Y*8Nn(jeMeT-*t%f@o7PTit;T z13Y3<604zf9@90ij9%7Rz?A^;fopSw8*EAb1msQCpzXca9$TBUYBfs@DU@ih0od)= z;Lvzwjrk|A&1BySF4$Yz+ug?P*7Yjb9xXmJ7(C)(;;`w1F+F1cV5YahI-#+PzNi)I zy|4%L`+7#WFu(cs?EAkBCVPY41>P!Ii^)AY;FkABrXu#$SZQ0cN@Lgu?|LS+>Ugq;3 zLD3<(B1QlldXLh)9r4~I;{w^j;vC?xflMIDwV=gdm zP(|k!>f{{By%6U<4_#YYj|8#AVg)-v&4t~)x2(#R4{zn>ub0`b? zuHm9e3a@YA#KNJBL)i3jk+q#)Jl{1xb?Fx`RZjF=kYf0Vu!kcCj?5J}Ll|Y!i?{OC zQeGLE!l_%Z%a>#gye7 zm3vFKZ{svGhq~SEZCpuiLx9*}N0V@>;~4O`Nu4wXFv8-tbvx8~qjgyK(4U zf}Y$8xWRViS{VD5@i1x0NW3I!4oQ-(*lgX4JV0PQ-I_3Ygj}&=;U(;IIbsac?Rlq~ z7o;s8YXnXo`xeP0u#<$Hh6~K?jqPP@>`uB>hado-VqSE7>ueBQCfDRzbyqFOxnO>2 zZP+lTJt!)GW=oc=`t?rP54i44J8hi!-Wrg=@n_o1WWoRQzw^Nd-oc+Y-*~hCrAKLG z;hFvd3^WtG8P7Y&n_oJDGv>|9|Jvp6|DiX(^zO3Cn=k+Buf5|Pmw({$kFx|@D>e3# zf9LW~v7~&W$V-0u^3R~;1MSydy!@9h{|%JCt9WYH3;x#SUt^bxxGXVO)J2@CUhICk5439Vo$D zR(iA^4iXfu5MJkRKQR2etnlb3!2O0l0Jyr2_@4?Q@1_(Am4S+{}8 z;|~rWnOe62;kzFkeuQu3>`|r10v4!yjgyk2dREi12ss>_;9P{v<0F!!=OxQx6XRL)Q3kv#WX+{pAOT z{}HQws99}+nT~w4zw+Sl7g*{2%}QSWpFcSK`z(KFDtD|r?gd}}th8`g>QtkNp5J_M z_)po#H+NKB7d1W)8DnkiL;i0M4u5z5>K9@0P1XPTgTvov^^Z>N-TVDN9~>Szf{Gt# zSM)jk1F!MEi+YlwIgdw=48M^byvK_nrDia``N;4j3m>*Z@9~}f^=s^Fn{=K!GJHlr zr3yG$q6?lk!%rO!INXszRv`z3|b8hTp=%4@OHHTMACEGW*c*8mpv$LgXPD(3n$7SJ7S-CSiw~=`fu>u#fOG>G=5#Hg#YD-hC8hCfx1e8!0|)FA7l-l zc*RgalznhO|BZ)+e}UCn5LJ@Rk3BT}3D$Z~)tOJ~yB`|moXVniyRlIKa`rghp+$f+}^-+J|=?@^?|8Tv zPv$=_d+_1myIJ;r@6?PDP+xladmkQtfaNija0&C`M;{)3Q`xor(!8wq@bFt%7AX}r zwr_jMw>><3nk8T3gXSmOyuvdN4?kO0$d7n=h3|QIxXucJCMNdqqB{={|2T`@J!G>>~*9Cm$aE zJZpT=YtV|@sPYRB5C1N!e8j6@=hW$eeXzgx@bEXvuFAYRUgdvzc=#_^CDsUCiPXLL z_a7b}KURPn#d#+@a%}h!)`$)ohuha38-4?eW4UswSRdh=jtys6;bEJLZ<3!sYF|Hi z9Wt)ZvT^c#?AY+*Z1|z73iMCPUhKV}J~n)kl^)5Je1ylmW&nep6jo*1}xS&Dm zTAp{w2YK<>aD|n8#iFZnYu-6F++Y=7_NY?q(5+*`amPsYM%_I&e7&QaV!wXj*zk=G zSjuht{l|uXl2txj&#Ae4|J1SJpJufNf*PCn&mJ58Fl+hx#>6(#mim!n!yjdZud7Gv zAjKa)HvIQG25d0EpEx%BDc1Vty1!{#;4dB<{$*DGXkER%?f&Cq!=Giv#tIe8;pdJG zf1WiyRCl#$IbNI={_3&ef7#JZA+G;d$A-Vi8V$TQ_RTLH8~zGwIVWyd>jY3TP zt>eRg$nvi(%UhSHe|&uSPgv{g%UazRsDFBV_}i@duA-_h>EHLFcb6(%hx7N24aT5#I&VTOIl@Sz#leJTqkXv|{Ib_H4y|b_++*v#ISX7x^{&Z(e#0GaXn>p`p%ok_{N3@~RKO%$K}ER~jUX!0?p{~uK<4L>5t=T0 zK9%#^E1$71*M#_K9RL#>Yfy4?aiZ;lK6*QV8yLgCusHZ%#d{<1f(NWckIc4z(8KwK zYj=AK@E1`M@JVmBv!3+KJwX1P5ytj7HR%(ngY;*^@`N#aH_k3xp6@+}2bbXU(R+@B z_?auc1yS2ccpiz=kQId9Pb&-(;!7;dnS|w(Uj!{uE881;n{b44uYg_BL2`@Zs(|~& zV=Wx?`kGw1lv~K`Jf{%)wL-@#1Y#hthyGd2L^bBSC#!IO8o?N6l!xJfb|z9sxV6AE zW9%tB-h(IY2~G(jx)Ink4X?vt4~rZ1p~uvd9L(cEBR11D0}qURhro!)m2HwK^06pY z9RqS`uQ}B_f3=4vkzhYd@i#kn#tiqKaYw)}B8fLJ(0jxFRp763Bo~0W3m~!KDh_Tg z8{k4=w&Q$kn(#Kk2EhO6iH0lm7#=b!%FkpL%XKLxY3!Ci5p0QpCm#!b6*PKoZGV1g zzW3~>p2lwHc(Fc;+ro5lzibb1$whk_6b8sN*Ac>f2?7ybi$bAGmFch{o8SF!q+afIFTkc$%cG_rbZZ~0pmr+Nzb15US@8-ak+gBrlY`6!Q= zcfPMY4B>9tUZPv;(n{W&nLB}*B>!69`HUuoj~vcP%m%U!lI;*J=0DbC0~zD0eADZ`1C|g9)e?4-g)VH3Vyf zYar8R!8eJ?>Wa55{w3#|AY69!{FhZWkXNRime|D1O*5v?S^Id>2EQM&!Ucx=+TqHh zViy7&|J}ngQER&^gYu0ZxE;X}*PdRqp^cR7Nx2YYOw>DLq= zf%JL8q+6tV!GO#@J-ub-OA|N&LL6r9OC5${gA+WK0(v%)ipeB#3|2#T?%w}D$_|I3 zy!$Fl(47-&!8_O@4;A=t+PjK~ho84g4l*3zxUB{6=HEkzv@bn!qIc@k-sTY1jXgt% zb5(f?k|zf(gwfc3lejl9&kzn&vRV)^03Gzs?O}^;&%X371L zX}LD$ZOZd{!=~y<)4Z)44JWIOF^@dYJ8Q8*hrqT;S#(9_A%;)^`p>Ip`g3z4^a=*I z<2Sm=Aww6t&4^P&IFc1X_W-9!2`6~n*uM&irErt>rAA*G!Kn}u`xo^$!JXlX$9l}n zci#5Oh;*gm`v_k|dGyqR|Y3&_!!#_7I+UjLnCij_L*kC8B%TqFXh~$CV%g&WK)W2_E)ZmyCgg03U~ZiSbHM0!8P4x{$m*bdOP%}S3o^@V8b>R!*oykRy$yd}U*a>S z0PfqLgHVikab_0mh`4OFDAM1sTj*{hEF^D47Vu|% zCP=z_>q5Vd_ZCy{3dH65*t_oSm-7m1rM>sNWGBaS`w;9Wy%?#7KM`=X4h8PoY9k9@f;j;_izrCO z%S~e@_s&F$u5VmDe|4S%SgKs8c$xc0;9>jF_W;j?W5*x?_LZS;5GuxUX7BvKu&+3& zCBN^3GkVdO-T=xg99#`j#lf;aB@)q8dqJQ%h@>tU(*pn`jr7NWcA>4?lyTC`DNKp! z*Q@H-Z?%2=@s#zpBU#|IR);wo&n`oB!JP?_+Ua<_$FtGUoA;m{hVc$*$7u-BMmQ3? zzXtr8%Ckk=6Q36fb_Re(I%t0CB4Z(;BpsLZ3z z(=s^b6ok0{>h^s;wkIoqeOW0lm_F7Cu7Qy>sP{BMq!bi+H_Jn>km&dTB7xOgY;dd~?B2_{neRmqy<>s*S5H-F9YN$y8YVB|ax!1KYH*cP)v^_)iwI2W_-GI9_ zalpiZjrr#Za{^8rX^6nB?*5IICwotv=zUsKtEwgV*&%=0?W!tSKB`0e*mNHaLY|v( za~!YvlPx(JzVZ{_>0TD}fwa z>K@In!D zNBv6u*PI}-&Uk&FZJfCw1**d~4=NkT;>a}EEN{4h#av!114V>(+6`ny2S0&1Axauy# z>~ybQOG9;i9)1$WD~dsY;DM#tfV`xPMAcdkm4TyC-;`fv{m+!nO>h&FUeop@VRa{^ zNANGsH2-Ug%Tim*dBN@>+qn7A?Z`m72R)}dPHe*^O)GMtxa;HGg&a?{6u1$jURbu5m3}z&;(Kg5K>MKcB;|_K z)BS@7PPT!bwj8TL3(4L{b&=PuSFqHJd*e|wmKvFRqg@@cAiOZ>^`zjmB;vI9_)Hd@ z(&91n+pk#&$bef**q-ZFbCsa>wZg<kYnWjAwhKFQWi8z z{{B-!DN{bAA#R>N*?aP2@2Qi$PrNk1d|-HnYB0}35Zh+JRNNb>1y?B%>PnlIA1jc4 zPlJ}XULgKVpdvqMgS0an>jQ!e0{05|t?r?NoKdyoYuzlt)1s{s*j8cPNy28UUOAms zVcm&?YF1OU8#efTzhf?0kQIu&Mq`g=G&Bn8@#`IfM)ik$k;3+%f0SolYACX_p>?<6 zKA&>izX63BTzQ&Ke=;453*cCSgRosX;e6`&MH@N9anHz~hc(h9Nc54VWlf2qxJmdk z+v|hd`v&1}*mvfn)jl^eMl)sDtr8fisd*5HXrSN(N95Tt@9EqUh;gspP@=U}IL#t2 z7%oj>61ZF=M^vF6@|0L!Y8Lv~Y&J0tbe3V;Oud5WGFXr?J=0q2&up6hpE&urGMP`e%mKN#tWAfVR#^y}ID=Ciw{HHN`!)Vw=ptK+{$e0{>4dJo z_-wPuOGd0D;#f2e$izlB>nAwK-?x~O4IHfK4TB7zD3DGU-fj7a2xRXB38ei#RhjED zUZ2Ah35uepw@wIowQ^sWj_DO$85!PyP*vDb;NHj-XI!n6XOM_9`tyTBxtp}8JHCpk zO^cD$E5MFYC;rRhMhG=aA=F;}EoXYCrBd!a(E_Noq63SI?OWS|ggA1jkq*6B1qF1` zQ}mZ+6to@%_lllqmpaUvD8kR5MwO|^Yt);D#0G{s)o~m)X-y2YLMLY*+O#*bMD_6P zwZ-NdQB}9M*>8R>GHh``{(M}oB(y7b4A!cIQCi>XcCP>9K=)|NTc3H(100f9?Q39- zcR-L7uX&koxrckFaWWVJ*tc(Df7f*NE`rVwt3$g2_UyIvcfCc*G1o(9oWrgWcRtI*&J3o>$*bU*Ed8i#PBY9qFu=stZl=kL8WKTqwC z(s+CQYLg6Cls_}gUMJk0)vT?e{TDRQZm=(^JG-iBgI&K-Z+Cubk2H80_Lkz}&svQG zFPJMeSCofgVL{#Clf(=o7t@9)Z?20>+CepojDGg`5*1{tJ9`RygqNkoFM&B& zfCA8gyf%>ECt^H|NKw#NjN!VZftd=v>3m@-xIlKk1mEGNdj2DqpMggE8@ubeDDTSe zPhDO`)hXTjX7jW|m)9?UAL>>r-vol|%0J91(v?rE_K&D2pE6#K_usEphDx;#nkFkX zbk2_@owI3iCJnW-eTCxr+9$snif7yhc@VpH7V5tu{`IPSi|!#3)_XB_QRsE=pR(C} zgNm+kBoEpuV;7OO$EGH}-%4ZC-o8bRu|XRu&2ry#0b6J~AqkD)uut18P8nv=&wNN_ ziyJTlL+fTb#nVNpbZ$CVA;nR)X(A~u{+OK0cDN$-SSx7UNkb`;z z`O~j<<+Kc2gWg%jdNJiT@40^UChcJfr3L_ykbh8^*zi)%T;g4%buGcbLw&*1AV@-6 zLA48`1t>O+wpK?7w1vq4fdX*Lf_uPr43-s&)sP;?veXM@sySFG=cg%l0$92`Cg8GD zur$VkroNk>N{S?xtwXCUQ$s6Gl_vy$&@3rNx*C=dtHp_u96^B&5Wx)|DCYYO4A4Ps zKeXoq#T-zANXvCJ@=Wvh@ti7auTDlfVf>6Y(dKXe#A8a2%%Nl&^Ghf*AE^)dUm^AM$CSvw$ zB)Tqj6^)ryd&rpu;Lr?HPx=e{&QLe#L^8>NiIL7^nh9& zlT6N|)iaH0{EnE{*aT>uu& z1}$9Rt4W|jlhNj^$s8|>P%h#N863 zI4u(Pk*;HHys5W-p;%3B|7cOksxGTF41y*k#>cS1f%}DslLS%qM=s|cn|b_Nd29l1 z73La!wcHXSycPJ#$0lW*+&LL2kQImyNK2vEOuBU4$)55V-CWg{{f-}fCr&?>x}zZ) z5Y$?&Ln!h&^uEV2E39{($;y@H0XW!P%dQYyfdw`7H?~k3{og@*_o7a$FaAdt1sLM+A#Mvkd&^ zHiINj*$6`S_BL}NZEP&VE67eDe&3*?_%8gTkcZn2ZVtefcZuiGN+zc0?o46Hv-#m1 z$;Lezf)^Xhj0(K(Cc3mJsOa!JO+wS4e#1yLZ8CbW2mK%+D+Y_5qY;y^0!*uuGW+3UdXK2>K<)R&3qq{cqKIx4&9yy}1Y ztd-`=r&!P|*vo#?YLiPf96@vP>G&>66FJ4M#&KQG?O@8%6SLZii69hxg=>rHdX|h4 zR^uP$J}LK7hDWr5>)QmC&^mJ#>F2=e!H{A1u-{1Jyc|ITQF4%sn6qZ8LAtRG-wSTP7KRr zu8r6tPEONW#^a&x^s>IqL>(3OaEcoy-xy3C|GE-D1G6AiT6S=W#2F||S6rosJYH!! z-@DZf)W@2-$`+Dq`fLZN5W5ERJuU>mui@oN6uPo6wn-u0A$$W@iWZ;*1OdsG<}En< z(rxBJD`nf(Ax5ny-+261L5C-2XDtNZ-@lkP1-xng{gXv zgX3dxdCD>XH#jrwf;#KXj7j%x`foihQTBxS=3TTN^y6HN!#gnmqz;z9fm$B%~u%-VR&})8D6h=PbOOjyhaJ znJ;O;o0!tNsEM~LHdIG;qcVjl&Q7e<6a^}~qV+1T>Z#syk+ik7D~s`(kR?UD(^UtE z2Q`7t8H8)dNv{T4cNr)5@AjM~W2TN+%JM>+s~Bb3B|V=;vBbJF6cz-}SJ9xLJc-hJ zFdI1p4qW8cOFrT#2hq8aa__gC7~QCC>#-!ULAkBq5bIy;x(n)*69+U@e7l zoJkY0)h^_%SrP6O!cNN*lGGF;&s&$AXm1C@VQfR1X&sjId{mdwHDB>iKkpKD)PNeC zJ;iPHi$SW{@G{&y_?*PqC4XAW?EH!bS-*Uk!D5PIaRaOj^Su&)l#s#Ec#IgJU*`1& z3ka=(Sl)q*WgmQ1zLgn`?R)lHN79sCl6b^d8C(1DR3kTCRMRf7C0>m5E1u{jkreho znN@=LEfmM>@X&kykjnupPQ86A9u-Gb5@*t*=$g3rM&l@%B2m0W9z}ryT9`w{y3|AD zS-o|6;*zNtkTlg!aik@=lT~9*gX9}#TQhB(k|SFhint=#o^ua?#8vO#QQOFKk;o|+ z3hv;&ds0*<7!P&C#_<5!gwsxHOLA?15)2mJv8Y;(Gp_c&eg-c;wlL%XxRBn!OoPuZr>Dn?bVwi zS;Z>Wf>kjm+rg9_?RYU;RAg~V72^ZAQ4#t_i%K)>k8>;|OzIQF`$0F_Iu|ULX6CIV zP5v~H14|2>TiCV5|K+&Wd@b_i!PXvT!vU2w$n{Eldw-_UVS|WcdJzZbe;1dL*ah`; z;B8_~VZfjEVL}+epztMg&ddU9Nw-7?ipJn$JmqFy6zM=!uT9U2n3-+VGxm=%FLZ{+ zM)ktbSq4J6rBf>NFn5}zlNM23D_oDVyS-CQiyb%iZOey*me8*}R9XT#6P;m}W%=fo zXLuv1ffI38nlH8p1fEB=hd@W{L~<>eocZF6GZh4O_-~B{d4qG@OdIxa7I-{KBk$8p z6^M3C_@Biw3B6C;GijTfX3z`-V21>G2Yp%iQhc2rx)fbB_cZ$1-GiFC-nU{UNT;{o zg^^Py*Fb)TI#f7-*_UwM3Mn(b4_JcC|JwHWmF#~~A@!hZ^!>RQ8iE>Rbt3aJqPcNF z%w)0v7!hY4cTL}-G|lrp0~2`3VPegas<_E*r04cS2Md`wYqS&?iQ>3o=ADGf^o2?# zZ9@v74V8O4*z=xmo8Y;U;18v!BAkUDDM%eS=UeC9%Bo-y#Cw_+JK~R_v#2PfbantFFFnwy9Q+swQ58{`2U6zMS!2lT<^C7&K5OZiGdT<`}Tl5{DQQ$jwR=}(BTwh_|8fafB)kK2lh!@9>uX6SN#kzPH-}9GmHY5I`a@rkU^`*;es5;x# zFCZ=3iX6H`orOi z51>_*KhLJ^(@L{;T*$WztB&r;R*MILK3A{oCm zMKWSfjJ6tajQX}VMj+$&ebZMskTJpz_e+|0o(}NJD10)hdQSFkQ2t^Px&2@Gi~*!k zdZZD3$b%^2C(lFQdLDmUCcKkj)`U7Ve?3foJu|kHN$_0j91)ET7;HfzS1IC$9pdyw zi7=4Qyt5qxWzx%_yf49@7;M`T_Lb@OZdlRV&${OwRga7KHy7PxH9zDVBjx74rf{ds z;4=p7A_eVUSK%uVxNgH;on(@eL*<&LFk0M1+MJE9I14Ywg|3x_uGI+;Tx7PZ074Po zqo94WBTrsB5gC-cZ>2)~h2C+W&`ig95!L7lcq71O6rsS2q`gt4js0oad&mBq3w4jW zF~k2Utq;|5h*FH+(|2zpbv?w;rOkwfTqRbI9YaftD+(O4#dYdi$PMq?l+dHjn}}=k#dzx zwaw*mplY(@m=Mm=yu|t>3^6GqZWLn#05uWW*;6sWOy2BXe_3a{fuK|)&9%J|VmZ<_ zU}qkvPs0 zwf^ep$se;QJd4M%;k<=S*|ER1qnNcz0xOm<;TQKS#tIgXgBhE^3)_WkX-vA{QbZtF zAFLoZ(5;*R@Swy6aMKmIO?0${BRz((m$Gbx6Y)qE`_f%)wMy@6wRBZyfV3^UP8r-b z^p5h{VkBr$Hh1^c%7kT6bTacOO@3Blmc|_%ARt1#2f(e98{>ka%pE6rxv}BIlzd3& zjgfV;&4+Ub#*6dc(P7~NB%YdUG*7d%NR`>M0RXYbpNP)UOuP3;QZ}X3n3(v@8K3A( z&YQBky^BzfGRh(=ucDKTOpfmUv&fSPnQk!o{CF1{v71l6bOMQ(o_sn@gjKC`I4xS6 zROVNv@iy#feXC?Cy<$YDj6Uh=E0RIRTcmK$dO6uDExmiL)9qu3cM63o zuubKLDcx!^SGB1_dGm9V7Kud0RzEK+^*%+ICgW~()O`SUPq1dcX#pC8r?!kROb{Fn zXQ|JUMK@qhnW40kLUFa2c3Wd}H(F=Lm*7-FaHPBeQQu?V30%@=SAVHOp+5EF8|sHP z{jr~RN+f$RF)x1&C3GT9cqK%yfZTH$tZeSE_q{qnNCXQ>g9Nkp&G*|AHkK z0;b{j-hjGf>q$4WK65qpTHUw{y0V7?%d6nj{l;K$CvSYQG)|d3njLfvh+eurM^{2f z!E)B@%7tUJljCT+l*}c|nBpV4!``enERNgiB2zzV2CW8yNwuy{z;kBs0ZcCJf}c zIFmUT8e`-8>yZy(QR;@L;D34P?)R$Xp8w_2AbPxv(3Qk^;L>QL=5q#TtG?JeDgU`1 z0c8!`y{d$cnQ`V-sCvqu57%8HWr_H?t8{2KfGrtkuARYhG4W8X@|{6UGqVVj5Ag&U zUSN`j$dpM}J%3t*IVbP3-UPyTaH=A$m*!a9j=;BWP%%`Qsl#{;<%V)Ia41$QR;>ND>XFGixgP7W;IIUnYFqyR$ zq7vYT;wN!QiLN^2z?#HLW+s|S<5i#mYr>~-)ay%0N*k! zxr?_0P=c+vY3#y0Wx}Na7uOW~Yq0zJZb9?Sb{VYHxcSL@NJGORuj1LM0QdimKVPevfXDOlV#4dJf@c&}DSm3;+$ zL6GoJ)!nB!v+@=q0{C)7CmZ&5NffC@I21=nEs%F2<#2+Vg}WSjx?ZyF$Zv;R+v;c? zFZVL~+W_E0kD)zE9THQCn^s?0GBYI33XS|8UYnXsU>Pr1jvMOxPd6k3(|pY ziLqOG_H1Iud4shNw*-z!H*v~iKC7lgw)_*!1w-U{_r*%N?A9OvOJ4j9<&{p-6U-G2 zuZNFb{$sH6pX{tTMQ`K|0%tE@MaysNYMF)1paXC7nad-zd2F9HSrOn(Ub*~d(Bz|C zO(Yn3wJ%-%>!|j@j%x0%@DWy!w?cQN-=(|40T@%Ad&HI69CpU4d}x%a_I{XQg@yye zY;s^QPB@7-##dn}@VF%SFFf|dSJ;0+2{KlY1OnC$aLZ)9hmL3oZw*sXWp;bWCX~tC zGOuLK=in;E9Nwn!2@i)WBV}DXX>ZaU?BD_WmYX^K>6fWc0DTVHi}B z%wCm)MCnN2ShI_lpKz&KlXZM)b9r=oZ?t>Y3|6O*ylZnC7DgT?0`;j*P~mahs7N%a zQ*E2nZOShOl%Nq@AUEYBjm^R=M$C>9BkyeE(#$s%VRJ(Q7oh3MX=Asla&)>dcJ&W; zMhFdvE`oET_Gw1zpkoyPrEH~J4n}~7+gZSMdKz504gpH*3DR6y*@GnvD2HBPG(i#+ zIkXllj6~dcLo#DXB5csa0{m?F#SgOKn=IHbe)I2lE^+(f%gm~-;bk?6 znXb(5i#T!O#EBEz6#X;!3c@=BRh*xdK4RCSF-o!kF$L}r79>~mM_pd9`ghmXn z@<6VYgR3r_v1vmY%y-PjBZdJ~dGQArOam$N4s(=q&1#u|hXfHI2Z94c7hEjZ?N*F( z{a!2j%V1aNrr$44#*@bR2V{xssi)@z1kG|0$Q7KV=sTL#Q)yitw!nC)jLyi}x_qYJH5cKAFu|J=P zXI$22=)Gr0*!P_r8OBD zMY&mY!m}32cXns{%(=Qd#ssHOxf5#R{+ z7a%BA?`XT7!?R@)T~|J=Kmd8;8ymnh?$owA}JMei{|}V_ZHK!b1I!eyr7_%7oA% z{vr6QAHi<=5MMm>$0!qOybLEr{R7v7Ix{Fv5hvQYA=f`t-4BG&(8{%1cCx{Si1XV$ zkkLw@J2}$)L>l$Wp=21jFz^!$lynGTek4D2lq|cx)#fcLdQBz9VfZp*4A`=%3 z1lR)7iwML@^kp-E1!tX)pL9kK;S;jNBhPT7J!d!Xt&xxkTo-Z-iS^u_Hb~HtkvgCc zSU9$rpH_*E= zvP?jDqLUziXv*62qtS_aAfS%m2JCUXRz1vRTwkfT=fnUBmvFv>ViSWmH|4|QX9Nth zK-Jbo_JJQf&>EG)EJep;@dNEAnQ|h z|7-!r5kuR>868xI7@Yo&D-)6}Mq-f2IAIh!2=G=rSchp#f2En3<4`Pl!Mtf7 zZ+#QTSvn8~JF-2zd6tn9aZjIO)b zJ@*)e-Yajs_}Cx~AP>rKQhRF~C(NU*bZ11{7B2v0fi6!ried^R;}>V6*#SXZQ0RFj zNImbFEML|F#@}MwyjGYCB1*PY*hKm6lEv36|4p&Fw1EIOqK;!jR0|>-dow~XNGD!W z$pbOm@^U=w9mAJ7@%YIM6g_0)PCrA5eBQY(7le+nrV=KUYm(OJ0R1A{Yf!MNJX3x~ zBBvrRLLXu|mL15{q#%%R@tj6S_|b`RE&*~;6{Rj*^o*&9wR{fPl#KP_VS?OzlKLh- zwXeJrYM$6e#4_nfux-<`OWr-PQko#6G$$}1P=nVnU|5!)C5DWRj*f%Iw`F~CD~4d2 zVH7nivYfp}#lT1|E_Et`X^`AWEqz~u(^c0N3(8F0B&^HH0NrMoT>Z5;-Am_JVwf<* z5Xu7b!oZPwts|$*;xOA0GCc(yA4_2atWRYz$d5Y2Wg+F^cO;Mu8=j%l9w7rmok~5~ z!U27@E(Zl=`ZBG4f^(doxex?R5-BJOvvt&hn0P15KFpP!TTF8!`x;g2kct1}cu{i+(zH3CUzubY$@%KMgu%bc?b>OQU=% z4MWF6(Tt|e*VY%1+`i?leN>PVBAqdHQ12yxM(g0hDbDt5nh6ezmdZn{`|A+*u7ZRJ z^GmM{712{Z2qyW6F&e^gnsf`o4x7dc?DID%Z6YCE0yf~7K)AHVO7JcbqMXsgDoM~g zx377$&YtzLuYR=XrRn!bV2!8&GdVw_S_(zh;HV;irO%F;gzh+rbj{$Xi>C_3y+7hw z%vW(!({eoEq-0J)7;&!mp?SxXex^Dq5mvyZ3aLORBc!*&dt*-*dkrc**z3w!W`r8Z zJuS|w{3|Mvk5gQ-yvQ1$ZHygwhFSXzY#@ml(Rh~64dT=dWsD$6Eqzj{6KU+-L1WE_ zOKXPaV!hV(BIBc-_#=m3&UCmzETI5|4VQl(l%5e7pm5>>lN9IT<-1JwBB_ATsN02) z)Y1hQuvC{2;kg(c!rzBm?-w)xS|q18-FZ!$lt(^TfGtqL|K(|O;_i(ZZsDFhlq7B<5xD!4+VZY z1{lZWPi413MP5C30GcKdEP9$8-i>GAqqJjf9eHIEflmZA~$=ZaC=E={hN<*ld z@{irv&o4q_qYdC**w;I5VZvyKnQalK5w|-Ok)MJhJgzR zR(gVRgd4 zgWl{{1cIg96 ztM~T@|4H6QYt8)+c`N^L@ZX^H*BY&;pvlYrn+18wZ)W3Gs7|MpAUS6KdY zC2%9}k-U~eFbT-E5&7pl5mNyr&w1>mZ3v`5(m)%|E#(?ylX5EwCZ%|`r^$)>>Y%wt z_3`_BRUDD&h9fdC9xcb`PxWktCx*lcnTKEhIh~N1%wD#`E;uaq2--*MIT)&)e)?s{ z&fQ-yzo)f$g4Kb!iV?+rz%wmS*_R%W5gXg;-h{_L9(vs9*s#P$^}{uOoF)#WvQJT3 zhsK5DFKxC@>-2px(s-Ul#MrY71jdx4Y3dW6WfIy#?PWd1V=UP?Cn|bJ<2{Yn`GluR zVq(QcAq>9f3&Oi|?T+4L{@YicHZYk%X*CD9}@ zldp6dVG8YWBvOO+r71$(oit0v@^Oki6yGN2(|!LKb&`!=u*L0Fi4{BV*-Zw}GMXDW z&;ej4Qer~n2jS%Euo>ra(Q>fP-D3AU5UIUjYme$gXMgdO7tH!8Hga8R9mcNNre1T$ z(ze19L$kQ-u%M9`-rk6FDekigkXN)6`W))2t?cqVJkCJUR1G!L$ys2RXBdQmU%YSF zd;w^!-3GK;p(e-xQ)gWt0~Yu$yyH+cos4D1z#Id(8;kzr@8diobbhM21M^A%TI*I` zD2E(9gNfhFW|nW;@~Z6 zPAZ+Z{|Q2gW0Oja#MP@W15UaE4LJ^4ddj*F++mt~EmCss9d;!E-6H@xH+26@9C6Lw zOZ(DT=BrMyCXM*1b-V@3J#-BlMvz*|fIi5EqS}Z1+#y(wx$R2j!+tS*tDx4vaxDrk zah{)_vMs<8U+%#n1lq|#pO)V{@YaocDS@N=7mLF1;TiL|p!{Uk-<25XTRTa9oP)#u z>1>FCy;vAKv$&+@gH5>-H9|{-n4}Jh6}YV`yw*ed<8E95BpVj;eIj*CAEn{k60S&A z;+UKyZjy+vSEr2lEYrnU9taTe&3>Atl#@ZDZX%-zkz{#ZvQ(NCg(O?SzjIfNtT+&a zt;H@eN2vn5)U2e9D-zr8m5Uv+WmprH<|ye@dg0WhYa^AcoN)*hCCu7O8J!4MSfkiL z)V9<#N#YYf9ip&=B|}uK;sI$aw?5Kp@qxYW7ue`y>vIVkrVi{mG}fQ@Pw{TRgr5 zhjU?RF8IJ2PQWCc=^Bt?E#d8QiBm3Y!qGj|bL38KY*PI~6Q`aJn?T~y^bwh$B!a<{ z{Q70hn%eBQjCwp3n3#kVdTnwpt{Su=w{Q4>2R3VRuc z^EH@2j(j0rE+iY(V+jY7#mVS&|8Z-a#ZHK=kR$A?Q;SNDEK&+aR%ndwF#Oh5Ok|6g z3njKW1$I3zNIm|7Prc*#izU#0(aUw4TQ2k7P`2lXL#&#fsv}#td!Ud>7wl1lovOGk zzCR!1tOT~i*@w>T;rmD!iS&=-DI%GfjR8A4dT>=vx&@3SfLX-T@*}*OUSvC-v4&7+ z-yUPa5lW4>iqX<%Jk+sogUl!N-l^10R*xVu^-U6#DSkRlOpy1b%uEApM@fh`==Q@2 zlR=KGwGEHoD^o5Q`I11vB52^cL5N0)npp|1QPEEKlrZppT;a+a0(#v$2q+f^S(0Ah zkoUkz5CcsO9WgDG-WSk_3A_L-9Uz4r>E54@AK}CeI8ta^Gh^P8Q#s`T4lS2}9V0F( zc3%B~=J?fvmVy1&AF>KMHcTsrF&zMl*ff&b$%=kZhjrB6T0xb&df-N_y0ysRH7{jA^zknTD{YOmhTB#l5R!0_Tm$#>lUz~v;eiT z5v1}oB&3~uroa!F=w`lmQIQ3@c0moE*98@h;+;SWV6BoiF`ZAZ>!U=k*J*+>R@&~t z$QAj3$!7R=UROAiv*8Hy{uqgda=IG9a8Q9Mit~3A|A9#CIJ2}ZHgQ-@61ZTOicYZJ z)nfBw~rZCfmW{EUYcbiwh?BWV=3~X@p4|J zh3XTG7h~9J(-68VNEU;>Gb_Go!6gtp2+VYCiZss*k{0{}ESLDpD%CmF zlg=HC_nGn^?sp`egUcMQaa_}fRA|`xkUZ{|*i2hUFBS_(T!iUOM}s(6DN;-=LeXr% zUF)yOfl{hO5Y7RSC_fLuQfa>`TVlD0U#jQ67^N!`CN`MSwnfOq(w~H!X+Te;d3y6+ zEO&WC@~G3e==;)PCTX^S;JOoaAtXu$f-0d|$sK#wI_{^~%NHIV?qrH86*01CPGOei zX=<{8SjOa*R?wUq668ZMuTFww2Cxa7@C(y5U0SSkCjRwcpZCAM&@OE|88_KZb5M0s zx_8Dq5M!-uW@eNv(b1RjVo4q{z^xB*Hwly1GOZ3I$AU_9paAFIW2DXX&0Gfp8~ru* z4BT+Mpn)OMThT8&m0{I3-l4^iKI?kNhNHG@V;D-Y(BzLg)4MoFmrR616g5|NXDL^cjA5D)Q@j&l=lf<}?1vpa-Av=ZeBZd;9v}O}yTp6#r6D+(o6q{IkJ-jzXW!3xy-7cqd->#`}M!M;tQ_?1S|3yp@RZb|v|w z)LH{qh1Vdllv+kyDXMK7GcnB5)$kq`H$|+G?Zi0k}7%s&^}&3m4lbs9j&#%K;}F z2T<0h2((V5@XC#Y*%@*^W@(yZlOkK$yXYD-TLp`&8<2@J3U&j${Y;Pyzm)1PKl#Z| z6bjT6+4t7O&z?p>fZw7|CcT{K!0@4TMUv|yWZ=LG?%pcB;UO*0Mx+($$nvG`wlyKV z($d&cCr8x4)GEuC>Zl=dspdkLbZ^si1?&Lzy2U%5R_GQXm5mPP07`O{Ag=bAf(IE- z=-X;GXpW<$G;xuyiF9OG+Ncou<0g9jBjGp?(#WZjALSsO8pOEP>EaR(IQNWzIJ3k7 zPtv@z8b8beFUiCMSKtJPRSs|J)f>l7>ZB+HzLH`)+X9R%;fmHJ*v-b4;O}LmjUyC% zo5Jd(jX~(2%uX=;ff_b@l4NDZ$c4=FENM#_C2A2X=TEfEBE8Zn6yN9k;!I$8=aV3x zVdWGc6&fAS0W`=`OvE*NAIBm1=VE^v{jH8@Ldr0N?7*+sd~pph4x&n+uvhepFqYxK zO0FwWgs=|@REqE&pTOb7xj4SE@z9OfJG0YUe$l}AV2ihI^}4Ej0IE5%vGmC`im_la z>*_dBdcsg|K}+0jfci|nxP|K1KiD12C%C)vRct#jr6cvJx@APxG6}JOklBltHQ&%y zn?MUfZs6lb0dM^QyPl6}oFd*jtBtmdD_ z6h1Eikh(+xL}X($=$qi}Wt_K;3I8@W;xq0@OCHL?Mz@Pl=)=iJOv>a}a9Zm}h(gB3 zCo~^d-Y;yfWyw)+lrktMU5ad#LgCY8!De zvBKXU{Oc(E%8J4TPCpoIq0(2Ym0Zpn{2vY;qUaZDMa|y-0!xU!-%?5p+ZDu>GHa4` zN!bQLrR-`_O0o5cD8*NikA(_@{qwm|Ih`Tv9<1^||K=~kDj(xcTsK~~@LeP05Q_JB zI(g_X?&4=HFz<$4yW)3%yDt>^k9a}IvP;01S@Ik7`!US{?z#cEzH( zVL3-tissKq(%SQT67#pM*Bzt<)G?br(V`nKLy0|KIHIdT=88QUJ>j_;EMA#I7Y<%i zIV{oOV$AIUzmS_w1YsWCLtMgDG6cJUb+wCAPvSME;mg z(5cB0a@HOr+*6|}Z*!(m1yci76#)1Tt~Y%s4wGxC9t;~np)?*chluS_n2HnL3Pb66 zF7lcrAws{xdvR*pjxjr|^%t_4pivHo8P`E{;xSkoc#_-^anu7D$@`q@ z7^l2foE@rLCgu#RgeqC7w9{6|&4GH+O__KI?UsdOc(o6K2$ZpN*hTOU)~GJOYTZTD zEJRch43lD&*&`-4IlXHO3&$gPf>CvZVa8VbY( z_6X)VJJGU^=*yNxq)5k<0V@0Ed6|5YWilW4=jx8D5_wSoj&K*&n8wUh=R!i1WCqBf(pBIPUhm= zQs9!ctn*>g@JBG?#~&r`HUi>@0RxlcM3|aaLF-z4=5paNoE@4NSwzB8fW;LnVF2h6 zVOfqU4hgd>EOo;OPsULIB2IKN-mEjTdde!Y1*)is2F@$}#(ULp%ag_*S|=|oY|s}f zXttFIDp^>gwn^<0J``JcsdQ$e-Ry3^vyIz1HPQoTm7oz31QU~wF|SI4h65{f1!xcZT@()kh^ZufyeHQvq`s*r(RpVf!A?M&g9|Q zsa?(8Xv0e%c2n?buf}^|n@risl{N>%zlYs>}j*gnoBGp=R={( zta~|}LgJMBkSMn3~2Wr z(UubPE}9KCI!I|p=MJp4wpHFyD)MkAqwA|mw8W#1Kow>@G%iCfP8@m03PM9Kmf>Xe zyFU{>f*SB1-(h;5&L8B~y{Hd#Vgd6w>7ezB^^s}_MuYRI1F_ThA({MFU6J><8mgmK zKp2yZOoSyLwf<$yxjtn44hdw z`FLgV$aX<(fXSlbn8OIt!)0nt4k2ic<%ri65$`~@pSyA`FBFTgwkO+fN&sh8D)q^# zuu@Pu8wBB4h{X*T#N>d@gf9ZI5)C7(~A?Qs+m=1az`xVlB|4`5(-TJRmyE<1jPMn$-Lf7e>6~PigfQrz%%cq zH%>Zb{UM#Q2a6UuIRyT-vGuLntbUGKQ8MdrGJGb9u|kk5vi+N!fNn-ATqYQGX?zvz z6725C1BO5hKd@G5%o$Hb!)=(r3p6KFN7GdyG4)P^Ep}ThH&QI)m0yThSHyog z48JC&mK%LlV=vM^43){-g4kCXdYM)T*s2eL?3Z$FDoS!iEE0E%O-6Ji zi7cv4+q~y3BFSZ*Bia;snPegX?|v$}B_YfUi*E7^KRl zRfXXJPqk6exH!K60?7v)Ux0W9WIjGYp7hcDMZw7djxlaKH*goGz5zm<#IQv1TrlOn z!QUyuC;GmNZ82i~!CQzC`*v9>UjWiwI;;2g;Ez!6d+XOr7DofIH~9Ae;u|FhTP&k4 zXvP2i!GDS38!g4FTBOzduLl1EYW`+X(?a0B&X*Db*DUaV^32;gTa-HMbV>@Ii||t8 zq9kYKBBX7@<4XFJkNqTJK>9tVr~CYuFE`fBg0!HXmDlzmglHjITcEj1#LL1<%ogX0 zb&~^Y+&;L#u{A?a$)c@hSsOffEI)Ws4|qFou$P8DZBKc7@=Xj*8v7*cuiTnE97gjj zx07rv5fGZ(C|9~+qFL1_ju^UQTtAVxx9HP?1{Y7mQ~fCG@o4X}*&NRH;3R3(OB?{p zqqrn8ZS<7EA`%;_Sv;^2g)~PV-=zpNH{(mh&gK){;>H(ui)k629TyrwyPqS>t-R{C z3aO-|Z>Bd22Rg!+7R(Q3!X|aaWTp#kDJBgfdv$T(1)yepl^Dbk0S1^&IzFpfj!@|b zX<*=B6oXJW-NYADsYHgv-)um`(*Qzi^r^%6xD4^W2QKPWprzh0I=`&Q{&d0sA8)F^ zE%WGxJdHDk44gKy$wu1njs{x%1_P*plMi_45nHJPbuMr;lOEfv49INJA0I!R%xA}Y z-R;}&+}?R_c>mt@8-rVSemH!0ckAAr>)Ts$=}sF?0a^v`FruMQE8bo-kT>G(uQDLZ z@V<>hX4jB$ z&U+nBb(az^IMp3Y>;=jCOD1fVvDo>h#xh9fU{V0B+$e%Z~C`b@PPOyGQAWLu6SqX0Tqm8!!?wUO-Nk?244nZd)z zcGWLuqb&CpoF@&_DMA~zjHoHF3L_N4X9$fI5i}!Z6S8+4Rt;)z&#<277xsDRK$*L!`J@>ep(>zjAa52dlhE-n&Y&p30BWS7Qq`)m1)KCrV z8z5eYQLvV$Gdtmo48epi3PPWYO)ifqL^b3FkU1y@9kz^+=OcGp0v@r1&=cc7NqZOn=Lo-S{ZD^vHX90Mx=rg)jCSqnEp9Hx>w(2A-fKSe{1xuEhuImVW3GPJ*T z9O7m&VV$?9`7TvT+!{x<5m`}9+g=nw($x(*jhd2iik!#n^Ad*1)bc{BRkqHytO>j7 z8*vS4`8@zop#-#OrlY3_U?PlY43oWVzF8LVUB6Air(sBgdaX$7>IF!YXeT5R24Vup zsxYzD%+!dw;-sQd$;3@s)b-1wj8d=P<<8%7<#SZ*kIBV-~3RGNvvYGxpaeVBk{v}b8FIFMF7FsUC~NLI^~`Pg== zI*6A&ZOud#nE`R-3=q_KdX6Cii6E@iv^|FX1zUxiuM+joKznWo@1LHHrrF~#6_CCX zL8u@nP834-*gu=|ydKUMqJK~q7E$ancp<-#8_4NyhIDyRzj?bTBo|+!&)A6QPvv~T zRPOogNt{S*%@&KIwqCsSaV+QiqUP>Cq+KX6!N3saFLEjbOEAV3#84<5? z>-G=lqm##fc-y1z;*DN6x8Aw_?(O@-J3BYGhWG#I?$$2WnwS?V9b@E4JVXq$1@a{t zTiehuu_Ctznl0=YdmQ33^h{f81qQ(Lyv|JA6>(?HYQlsRI-Il-KBD}L-ZBt z1oV<lLT#Z`bA9L3Q0*55x9Z#o3o>i zoo!(2tSOyK&o*S~F*;3hYO6sh%i4*0jQr3r{WqOrpo9Q?qdZ5 zIreFeR5h3<53zMmGGT}%r%Hg~oj(uzP?hD!{coDhN4y~HM~_szio=d)$2ABwY@36w6b~DUR-x=C?)k%VD`rDIBahaLUc{vt zd9rqOu+`xpgXL$DBWjkzAeGa}%MosyUv$E8`D?tiK4Euc&F8sUWK2@%bvB2KuHN;~ z5DBF+EGLeqD9E2in}ziZw9wF!p;TMDiaaRxLLziom!D>86UBsugcBVJK3KPDEgSmR zI1Z|a&=QqtChg!>L`Hp%KfrZip(Zi3DJvv4WMY9ej$87WrR*T~+Hx7d>XtcCJKm_S zK8t9s%K_7PDME$^6#)MFQ@{Rh)MvK z{muR|zjI*P$FsA*ZBv6Wmc67$G zcS_Cp0!)GIED3EzZlMziYThBtUGa4ZTIu^|6RtKfgiD!@A?}SG+@vMf{<-ZEz1G5`CxtCII!A2`~&*8a0}d$YHTJ{R9}ma3mx3=qh5rdEySjQdjdh zlL!acvP2&ma0&bieGKB(z2Eq)HPtVv`RhD-Z*yHTB}Ga#t)NJK8=ZnR5ZAK*EqkvCGP` z`INAa^`@oCRZUs#N?RuXiJgvkT?*qu9hj)e2y#`SbqS*dw^&0iW%Afw);z#4N^=kJ z4T3gtc6Rg-DJbb^og6_oz&*#>3e;D$B2N+=$dDsd(M>J~wwDe=J~tIH_EeRYQZ7m# zMShj7CP@WXNz2f4%1VbrbA-JV;NF$wnkoevs#evkZ2OfnOn?bkxh}}S1`4<&6f*-5 zc?-ztgE*^GnP^Z_+nPMsJ)ND7rnrLO^|;K*bHlXqMvfxo&&}v%McR|Lo@o|cRNl|n55 zW!5{_P~1k5sWQGUZ5&x2mkM;7=UOsy0Y}8OoOK67VSud7p=2go&gNu`gZ*D)1!1vE zSVah?x{}BXDs2sRXj@HKBbWLnMOUpTthnZ?(rja`m4(&9sA&zSJ71-r^Q|MS830>% zYmi&GDR4%BL1`PA!V#-fuP-|=b+DmybaINzhvHO7;)_+9-(f3Zc5;=|W0h_bK>T6Y zyEh{U86YhLyX2$9oyXeZ7+g_V$`o~>$!jg!rmiMI5evWyWNI!@6ct)Jk_bRZYNTR1 zk5NK81bRjvdSx2PE^H)mL2nd4YOuG2xl`h$Efa$cBu7+c4HRS8;X9rVX8E4L3Z?Rk{pwXtIc#Hik*k zz9R3Q#2Rk}&U4eNWFZIM=vxDJ%6S1S+1Egq9G0XApu3Oslz~(C5{92olFkH}N}&>5 znkFFSQ|UkwsG)5Li~un$pYwIA*%q=~astOiDOF8Yt^C|WC)-dENQeZ4yLnLJZ^#PiS+O`z?NtnHiU1e3mF<&rzN?Z$H5?#oSl(p z!eqh39oeL7%W_f0?h4(C8nz<$lr{=o5$~N$pg52!9^y!vxTp{15}UgiAqAs@RzU>X z1l0TJNYcR-4>H*0csyoIdryY>HN%K6bBmHgg3`s5Z?wi@rr4!CB;Wgrh(>qF64q>@ zz0++_io#|JGSNBL&^JK|Dt@1OER^EsJ#k2=+F98f zZ?c5f=3jbS;Kqcb2&o}^3Z!KR_56TZPg=LWCBtfR=6!xh0tR(EdO zP{7`JYgZj8{~mTfB(?h#W@`VotPg3Wv z_%`ppk4P0neV#V~R0u`5mo=l;oXM9ygE4buG}fECO|p;%ks&cvOK6Q5b&)x$4ATI` z#@CyaYfZ*=CSmMrbMi&%tm&+`eP7(dhg7q0oyeYZ?-6n+%Pxd(n(9_GbuE1&yQH)L z;{pLo?7E#?iZM0d&C_QgWg6?NWiRdZJ3GhNIThG+>RZZZMJc)-VA7r;j(MI|-4IVh zVX#(CZzmn0UCN&w>JtaZL}Yv3qCuL;o)o8KDqR676$s9D&)KcmWwn;mq6$g}#{gKgfzk0C5@xfn_9a8S2(avo|EnI2TSqzgkRziMwW;;)vLt!u})|O4XoNZ z3S|X+gc0Gc0VEbSC}GNhmqPSo(!I_%Hk0SEdLb=sKI9j|Gz}0dCYR1g%XMd?O`Dk* z+bsOhN_(OH)i{v$7@#A=5C?lMv2B6%8UcoFwQU%86MFO+ zb0z8Nno3xV6J^u>>Eh4>_NRbx7J3s$#S8Lp*M|}{{A)`|9ZZzdFD<34Yt&~AiMt5T z$}oXNIzB4yPIsK_swIiTWPPE8{94`~dK-)5$MVt`wpbcJnx*5FF~ls6@ukEIfyq|i zebP81c-VbsgqjjaBV6o)T%z*GxpkmRu6ld=Ig}+V>K=@Zr-L` zkAt3+5&1T{N&{XT$neh5Q&2!RqT zQv}O3mJ>ckH(w;mHY^xz(Y9+xAg9jg0987KGh`zA7v@T%ixcTF;Nx6e4QqEC7aN57 zLXLG!3FCK7P|Q}-(NaUlUG+1>&nXEF3vPHrjqyp2`f!xyFeygL>my7^N(7IK4YAYY z>h9=y$suu;chWG;VxbL428ucC66+YXd3ZL5E{6-L$NRG*+~O@4iR8^{2QrvZn6QPk zH=&qubmQtO>}8uPhJhh@OXwifD1X0*>nK~vjjdShT#ol>X_+@f&@?oXRKjeKAFM-I zcVQy( z?i_X(PbMdFmz@$_!jmA-FdZq^cr&B19d6goDN9JzXap5Brf6XRcP~Sy;c?C|N!YZ1 zQZ>f7ZC!1~il0NNiR4H)xCJkTenE96s++ON6?zk-05qFeyopwuWfm2Pp|4sYS+g3t zx)t3V{4q~?T2b335qQZKsGlAElfg$QeANm|5Jwtr(FpakHvZP&zd*IGS+y4DsFnRk z+kfRH6#j}8wt>$*6k2rq*I(NHJ(hLAR@Nvi3P063EB)1%w!g>H8wUAAEEp}^s2|$F`4-ygm>8q=I*_m2y(*oE?)ot5`$|tr&|8#nv&9 zQmfgF#fk%}pL@hpe+RSuJ|aR8;j_Tu)bIZK&*^X~R;zd*6;hmW^>zYM6g(b%#94{r z^rV$w0*RN4o6)TguI-^)$n$>8`|_BU&?>5p`u6Amn${2X?Q9+rWT-GoUuo*vB?ayZ z<(d_fDpyw{YHq?DOW^T`>OQvorbvvX3RJ9aQXJc}t52i`GGah@LPq-M zi0#TlZRmn$Qw82TlB>yXA#HI5rR_)8g5r}MHzPCjV>czcNc_zd8xP_tqxFY!B3675 zjaSqt>Ti%>V?No>+HO$4lak2V6|ZjkJnC)|SOzC7t{*72?x47L7ANEV$>9VhwGD%y z-S1qVBD1m{=w&f@w~_ZM-i^s)D%8L6Zh}y5oc1G$Vh)+6z3EiF4`|jDPpK?I<{B@M zoYl+8o}3VY{KuIUt>J_wU_FIwDLj_6;&s6AVHvmBD+8)SM40?0+Te1;WeJx-E$w21 z=tE1G`kh8L2oPfAw4i6)DXK-X1dLa32CUgJ#~pXV=UcX?z@QxW0My3c1ItsMsvE(E zr__U^zY$(uVhP=>d=w`L#Z4ElgW$X?lUeH&4`Z#U&xxm*3yqGj>@|Q*a~$K`U~?5G z)4O(pRjVmi!4OEHq((r)>Dmlr!T~V#)667>5=W(Yu0nZB)IhFHyaPUrgPiHBzo)Uf!ytZaXgu3)Bwe|@kCZTB~_f~NF-jju%KEnok0=5bjLoJ9)l z?hk@?$Bgrmk4tVb>HpOBB>6brkMQ6A#xGv+lM4?#aCK?ckyH;9zbZR})IwPI;OIj3 zrknbE?VAsHHs^3WkD0{Q(Ul6qazzvp8&v}?custj=P#x=IeP~%y_*?S^A^f(vE?e! z`O82&xs-)Mj0gu8Ym&qad2WO6QT1hOPbPN0(wp|cm2&*S=m=-}qGmz=s@V2WSw`mK z`^is!qEOKGLyVEx%eoqGs#v^z(xb#5biXFi(lbx+3g!}0!U7fB38 z)1w)jxyh508M=wvnc?d}zAY_mw9?Jpq2T&l3)~?}HugbxTw%V00<9hEBEB^l40z zzSot}A))wbZc8>0V`>`YehYMUH)>RC6jZ)J8F@5ok43vio@<>qa~M%QT1pJfX}0jR zmOUZHHoQ~Quoy;maTN!C{|V#Y84Hh@X>r?7cc{!r9H^d7IMVF@932x~0e>SPc)yjn zae#2A=1ruVN%9+5_5R81q!)dlsn#MAMBf{U;#*_;LNfOZ=u&!}%*UKv%$UAvw%rXy zBL&k57vKMi%(-PEDAFYko8*VYYSNEAZBU{)`Vmr2mS4r$1=ors@r*rjriq)4ntqys z8vAsZDbO|&zXCjnSf?yowW~0Dxqz=kmhfc!UMkj;9p!vaOcC0UHKW)X^yv=OXF8UP zH#ptH6sGu5)&I`y^p=+yAIOdAy{@WHp5gL2mvGsrj0KY|l{!vFjsh*4rnEYfD?5n| zb&?4^6!X#Xqj7IK_DNdH4#4PLfYAQ$O`@ZLkoYMU6_#bhGEznKJX(X%7p=#Pk&FA$ zY|gE~ST9-oxQ`n}k~T?#o>HMAUZ)a6ukD3JP--=+fqo^rwk1t*?5+AXHJ@2SRw~X* zM}&VHhFv!HX~{!b>ACc#uW+d}ma?U>Ikl?q9oP~sF`o^c$!lq|v=c;9NZAIP; z(JOs(!_pqS;+#Gt-&@>`Q2s> z7vctaXYd5&eydT=%-WU7!5;eJQXG`PvFL2qy(skW9*~Nh~S5 zluRs9I1P%NrMl^aZJ~eK`9*jK$n);Hbc^2~sbw!A4)%(H68aQL7}m*edRx-c_+q^w zH?jw>!!obJM&}(|sLRmljn0pmO^WC1o7d0N(r<2I31IQf#Du8~Wv)9MF6J%Rm0*S& zwzBa8x{VIWV=MICt$Xim-MEj{D_ATdK(623-r2oBOkNk3wv@WNvvY6w_Ph6oH+Jsb zb1ze zQc5vS>69yX0##Dh6ndS!0NNZ9`5v`^p9iIVgcbj7O?0Wl1n(DqFD#bF3vwqX9i*7t zw(fV}?cl0D^!9BAc}S^)6xK^&Mm7NsKeUU{#Qn55nH|ezVG2@o-%;lgvfFupTu^12 z`*N{;y4w~qt3z>_Ak;a+RuT)<8m;dQ#WbV2$)^4CuJ%nDI0=;OeKK~gdKJ}jSyI%N zd9bv4DP&3j@9iwD9wbju4^wPuJ&{U99ZtkpDe8?T42+DT|ND3$y_}4d5sMI(dMn6s zUbm-=k|U8YoDa+zEaxC=OsB0hS&3Jxw=a7lHrRik=f!6o&`7>$a;gR#<5hSQ;Ob_?_p5a76MiMr2F z$x;<~=iS@4hr2g^w6%SmD^U_`ZY$LFw{LGH1tgHpy`jPqTX){wP70(!r{;)y;YFR8 zrwi53bD7c8A%z0v3(X>v$aXu(sf1nVP4JQgW)WAMM78qW3n608s2mB^yoOn+k|SA; zJ0C;reBfA@?tBQmzow`+D9HJMq-;~3c}Yz;m=Dh@h#$_fXcjWwu zvLphF#n2Eg@w&-jL0VMq)0Hy5b_P|uQ9}7|N$N3yW2G1tvaC5P29chW!mkV`D^T{BGqW_-QM$F)P}Lxo zCt=!4vq>#0!p00k9oQu6EoAr&Bu>LE){2%E&{JBrbu@xkSTeN1%$cCG@W(X;j1qzB z62B#WyFexjUMnbLXRt^c4Pp{GXN9nol+`mL)hla}M$Lp=^?J%967aOB%Q%>Za%|IM zwxrVmL-Iny!P(t5uX655zQ$uWe(wM)I$5w%Wk;sWRjz(@FH~lSZfF7pM6V~@(j(S; zaT_wZXp+@d*#0ci=wwC$mf+{Gd+S&@CiJb}**3?nxY!TjzumKRDl+QWqebdtGd2a+ z2Z>Ktq4JbxXii6ZDao|RS_A{BJ-2JZWr!1?uS!#5m2e!VD;*>R!>%;9450XE(A>lE z{)n-Yc*WZ$Vh(}`&r=$VKY$Z1a;$^p-_XYdCp~Q}UI!aZ>n400OpGQHQ_%^ua+u9i z>HenHQVBi-_X)6y;;VCkfE(nC(JXn}{p9DEwkAld zMZJLS3fd)3!ffmzzBW~mP>>~Cz~m;M!<+skE?Ru8Be$u4@>fPQp2rmM+5V-RR!_oe z2rHrTX7arX6-q%9C?1w^Kn4fOLbEteZY3y~FrtI@bf)M3c>$6vxm-Rot^P)Gr{b36B^u$)lnmb~F>_I+l16?cI7+XW3 zKD3FIQASFn!?-6?Wo`LVtVnT;70y}`ri76Xz5+^~wG_9p&x-TeI#Q+uq_Rf_5s#9> zkvU9k+X%F!sfl9%@0D%pZl=?|zeMDO;if~uqp+a#9*v$OX~hAOxOSe6jwMhC3*EyR zd|9K1z!#_A=(u`KVr_7>xI|}CJ$)vpOt_{RbydhMhFoHuy+tMs?F}Q95ki(?tlNDV z^V8O~C3qyMcDY2Rb>wcnQK!b!#{Xu-=6I=7jX`V;fI^#WXQ~EVCx)-KHe|KE^eFfC zG87PU8YpvB+O@$gKE0>E$QsIZ^`dSBju zQQxbE80W3Q_zwsF1Temkl`#d>O8obO{}CmOv<9Vh5?h`BY4Crcj*X_(iJWDH{_pM2 z@T|HGr=#C&XV%FN<4Y9oc^^U8M}S_ zz7#nJcS-rRIao>;q)Q>J9w;f@${g~xeE{Wk3)jfIVv?rdDzjT&XEQ;b)F+R;TE-eI zPy}LqEu7vukz;U+;y79FZ;rlr*&$hQ*~NxE8^lgQ>h_Y)&7&wBe*mzQY$Wio({NB2sM1A~M~B#V%!IVzR0kry8JZt{Z&%N=Q?2s)@x+uK zY~cBw{l^G!AI=VkG=d*JK84=`7a%GH6YWV68R|h(9!*Zt*(Can9VEdzy}1V{lAGM}9A+7x*$N<2;GOoPA0 zT;K4=U}?rIDNa<N zU*{hD2r}!VvjBUk-<@)u?a};+obMxl$haO(;l_P9nIh9|r#H&Ixmp?5bt1n3Xrg^m zdM&QDbjTYA{JP~N7LgI1X-avhJai;^DWrjiQcK9MYBB3!D5$?<+X&VL`8|Ig0Op2w z7-(#UakTF0#ETQWKIm5Z2IuC^;eDN%u~IZ;t{@5E@%|}t*7`DVFj+va+JD@6wKE-q zS!T174kF>^v(f(J(8DWyd=1vf6L2ch16;NPYKzmNas|D zlajp?qRT-oP$w^_)>;CqaxOj@vw#J`idUa%q-^v9*<)@hkeBqTR`Jrv<+q_)nM*AJ zEesF^UlG^H{Atfd^J9pVXl)P)e!A~c)F81Vq|`CAeOPTW)H*SRq|$rJHca5@7_JE2 z{CLI$%+F_Ml7;wS1}M?BNXRjIlD{%KmZ*zs!;aNlxU8M85s2euY49VH)294q#Q9%MOE zXp?J8e=(zi9|+7RDfV=cnGYuUcr$E2%EANT6ImP<>U|!e#DAPICNH2c9Z)P1qtO|5 zlKD=1++2$SUiVSRet2aNOe-5;>@%B)_gaCyh3l+WekE1fH$soUS2hsf#ySo9cr!vJ zT}Q;jm`=I-6+-Ys zMvKW$4`xizj)nGkybno_kc7}Vr2ySa;NZ~{$|pp7V@G9Q63C^TN=2oWCDDn5C&d-y zsH89&Oqt~HY*N>mrl2hwvPW>taM#!p0x9PkdxS0)wPj=+au^rFTuIDQ)d;nTx`XsF zB}Dz+J~}0;UYGEq=HRX^%J$Vf%`~mJq0g8)xnxm9TcC=Z^jCsm>@bHSSI(eD9zi!g za2UmVZDF#Q9qYb6_H6WK#*EUI=R_E~aUH=8MKWOxx&8JOG$UfdwE+$40$8B>9p8nS zpV@)*XaW?4DP%nb&tt6g0kD8-a&b-#4xN$4Sxd0e$|hCwDilH-AAZcu8BmI3tN;$B zw3j7Egx3)Wn(`)^Bf%E9dSWTyZN8J(Wsm~YNN*gJq9jwT|Jg+HiOtnkZNGsbP7~VBE{TRF z6pQ6PG`gOoN3a!4VBVLBi34E?W%Z3Xd8k!SN6(q`?h)hziV#bb;k^aTViF5oDYJ4N zph6CPI=bQ=d6_%jV;OoAQ%$b-Dl25S%f*Wc?~GhzPdxDJ!Ig?+RfhUtEs8^7Dqw6g zgF~|0G;0z(T;nlAB%O>#0DFq|ePn!U8?6|aXH&ZgQpQjl46wYE4PmoYA-)E?+XB^S zstuU7r+XQYzDYzNCN)A7kZB7mHG7jSgd4twMMmTLugeO0XY+>MuBczs7aBtqDwn0K z+0qdi$H_xkcQAemEo0L;DYna($&hU(-}6FFMjw{V@_OM~(QUY@v%p_w|0$CC&`jQ!ubY%(@LV%#5(UKrfFuQv|hQuB--% zI|r!d*+8Zpz6GFdeXu_kzY(%6brLrj=|gi?EaP5RPBMDG$b9Svh8|gNI)5PN_{QZi z_7Q}2XRNzqe=SXSR;Eq<;@}6^6ZuM3q#%=RpWGPipycmnB{RBMxj!82Hz3+l<_oEn z91otM6A<6@5PVk5TlmrbTV*=CARMY{(RE{{_#0xAk3K=Dlveeb;P9b=SY_HUz?P%iT8}wk1bWbZ*y^`g-Y<&)Aahc;GK&vi+i8>o(FL zkLSIi90?c>8AxEqiZM@pJK;VD5T!1*tB~Rn#jNXdb8{a<@vFUj0*}}uC_?$N6H8j^ zDABI%SVIQM-j6@PL8b|F(<~`Op8&1c;n{p5c1dhT*i|G})6$HkY|6JA`-#U7hFP+c zz|}aVlTo}6!#H|nS*wI0On(Y( zmV-%E&G#n4J5$vhZg?IUpdGBU0RbZ@^Vtmdyn!*!IHEBTaR6y;RPb{^IX}5RSm7qN z$e=UV_=M8}V0xuxVtTJC5X7X>&5bs0^hN?)*ZBh5ivPRTQjN1qI$E8ys{G*#rg;BovRl_wK!06c(-=%Gg#oFVPtz z%!?xUs&73|ch$xuXKf#j^%=k?Nd;4UxI}xp)y>X!u}G^1Uqe06HjZT&-#!KbNr!yJ z%7DbjvXEH>s_WaZ6=uC|LDpEMji|AN0*%&7r0Z6|XE-@X6!-8LxrrQOl&Fr)_4(=K zkimzyX9yC5(OiWyvQopTm8!uy?A{+yFZeLF+CRk;?jVsG{6yq$PmsFx`98K#aZBhU zxY(VwlG@X}Os&xuVt+xaw*90pI@diib6d8X7E5-lbi#T-gk{-8w9LqiQeAs#y$2m3 zcr+O?fFLnh2y7=7>GJ8!(|z-{?G7^vFlcTB314c!x;V$U>&DG27rF<@(_Hbn4J|an z3+_@(d7F4qBAKH`9Hy~~Ih}%^CxEbZGkO5a1*`!m@rc$CU(r(FwNN*6#a3w{9`V@2 z^Lglv2DlW6Iyr=Abg57**>H%Gl8!{wTEsah2FqTq18E>rbnPSwjDX^nd2rM(Wo-xD zfzI82=Z3h9DbP=`_{$iO2Mf|vuJe^a5fqi&$?ydNYs5)fa=F`_C@Hj}{cdB> z`QqRm_*;HIHCnu66eBLltj_k}$EfqIC3WJovnqdcaDXabu2m6UuwsXUIf{M0QY<)u zP(YkO^+HWAjrS(@Tgt49y%b)XJW_gDFIk}Q{}ieGG$}l9c)H|7|K?S}VlVeOwMTu< z7U#^)hc$6D4WXRY&hydHRN?Sj@VAT($G0(&#`C&g2Usxj(Oya z)$AzwPY=VS8$|MR=y{A7#|V*jg9?D=<(55-rwF6OB|nIS=O(~x`jjC8JQ@k9KS2zD zw`cMt?4G1(sIV0ns49r6s8z`wU@Xhdat-2afwq6lT}aJ;*SW>);lPr}NiYJl0~?kt zNK%A_O~epY<2xAgKm?Zy_ky5M#P6cDUXJqBzBOu=0D{zrNl~{yS@20O5!2GAq)Tyq zAf8ZU*}M5H8H2UD3EekGFgdYLH(q2H-j%1E625%`OhVW>eqDU&1( zB>5j;2!$JDs4l`0f>F*0VH>N$1OXKv|L~w~=tBXHI)8j}!%pZJ@z7#ru#vanDY7u} zqP8H|jLZm*T;9aRR$>1$>*#GGI_H9uzut>{Lsyy%_f=a|tOQ^R@aU~3X6V~zG zrI55(wMz=kw?YZ2hP(zn7)aaZ1Rbn$t3;}Tg144Z0T#T?1(z|@pP2+f``r&j#nu}K zpvPXQ>B?dB(z6Af^mvkHx`gD3Wzb+0?Gz{tadX(+s*G6Yl@Fznk6vLYh2w12vuz!Q zR!p1__aO;QHana=>IHUe%99Ol%abLu00rT(18gA&Cc91bbEI6NP|xOKNaEoAngZq2 zxlC)22+Cti&`bF&Aev~bj41%}HAau{Lq*YA<$20$!ueUBavmccRx#PiWsiMihHere zL0I4tBcGw^D64|)oC$XFj)YoqLiTaEB9kiJZ=e~R=_tjGxuQf4%4+i~Cq_vwNw+jR z!Hod1BRIc;OcmVXCb45krOgtNJe(Rb9dHIn#O`J!p|8de3TG$qYKfw%S^$0wr{kwI zRl~`Nn_F+c`$Ha@xpn8A9sYgq`n@~1?#QF9d-rzk@!5@gx9;D%as4(EfS9g<@r36O z-dk%ygf-a$f%(&kI^6OFI%%D<5kC>l4`fp5nv}UHhB>>$b=^|)hXUxlK{?;}RhKEhj*wT4*QVN5y4 z$1p)!{XhGE|NJxZp$YtjnjsKO-*3X${7o$pM4-KVW$+!m{9HMC?d|slTYOu}d3*b# z!M}yKzmc)Ay&4S`X1`WI%lX3=jOASuS9x5)L!Ory@L^$m{$|)iSNRLO^KU)B+&F{s zFk!pliCabvW-pc+UUXxcmQ5?t>{5o7*KN=Cm;z<#o7tf`-OaY!G~v&U5eNE)uKQ{E zu-y01qK)ed^l`~u5MV_x13ffuS*Q1XniCSCetDnZ`@-?4c=uj%Md-G?D$48LVYU2S zIm-pZS^nC!i^y*auck*s6u`vK1ktVp!+swy4#uxO#D>z7 zYu7sOBlkvk1A;*fTjj_r)a9{boI2)?)bug#{=4?Q*I$3#qST22Kix)M?4et} zn(pWTvC^w5F!Gq84Qw%d518tCJlEPx`PeRZ97FL2HuK4*J<}21Ya%?KqzT0u5Uf8d z!Fa!uBQ7N@@7^j{Ue57yUCQ7!7@5jgPfQeQ&P}uAG8kI)dM>Ov2Pdu4e?fb-)iO!S zmTnK#Q%as?g<@#0b;1L(UrAvJVxq3j?e*I`?+x$YyMAK;J#xtH_4vUyB6L4z_zqt( zbZGlF4!b;C-hz$uwNAa6-K~3fu5WK4FCtrjjUlrksHKW5ChuhXJWE1eoiAx;4OhE( zr?(GdD7VNZB0W4JK8Z+g#@tkex>wgzNGnD8Ql>2gEfT4XP9{UVLU?mvJLJlP1Dy`%AiDHO@H&i6z zzDfm6DKT7};0o2l$$q$T-{b7QgpXSL4l-(B&E^Wr?dez$RaX>vNmVlII=Z9NuLvu;bhOPY~#AUG@|3cV`+tJ`UH;50lDVFOik zQ?-+E&H&&2sa|W}&5(sfCMoC%iIs5k@f1^ox*_zT4B?{Q(w|^{Yi^_SXbjs@Jm!(> zEr+S?#yEY%%FFWBCZ?4a$_z9jp~jWJHW*@D$y;}LUk~a>?&NN28q#amw|u3Vj~N(9 zKQ_`C9CJ%a7?3I)1ByVtH1&n0Im`Dy)w^K%e6U9O{qnpB0Ahh@F#LK;g2je67qhdu z+Je)A$I$w2=iUvt0|i@1nv4K@a)YSFeM+!#7tuSo>cp8KI*A2r!xLhDM#&Yj9^^R8 z$sGa$yymM3@E57SS`JnHIP9%Qk0wVl=IF>672J(|#~jC3O8$Q(&1G#gtBouY@W|z^ z9v!>f%cWO5dvkIB2 zp)L3xNr;*pADEMNS-Z0Gq)oRJZd)u9q&W_2AdX`l<+|LCI$@HgkhwH#4j%XI?iXa^ z(r;OM&rBv|OXg^j53sLA=5}ZL)y($p&uX|Jt&6=tLj2$&cj2D+i@{~9_qHXgI+w8bF z31^Z6*Xj1>?0AaQcV{PDlNO@r1fEr0CrH1T&&RzZj*MD@v|LyEM4ECsScJFL!{Z#gM zffd=sRD_w`q+Kumy&_wSsbba?VJ(1#W7OO!fbwS>;N^CTpxq+W(ry^^+%Q?kyr^JW zeRK{}pcUQ1UZFnBq!ymbmTC$6s|2S7Y$7$IcNM$J!*e5?$>FNinkn#?W4Bz2&2o;e z=H^PZmqN>|tCwS|u&Z>}n#d1nFiJbc3&?`B#7e>J2aC7~L3Z()8NXyE$`T7j!C}{G zP5XqrnJTB(I;NKvya>2F4sv<62}ZkWmq@S88VP<>y_k(Niv&tm6Jn`WM^d)oCYMqd zus#GAH$T>P_xkuHIzr-Rb^k62?^n*0dVy}hDU&-iRbl*B`?=wQQIZ59+Py3bnQ5OO$S&Ol*vWHrbWS9{6YD+S`S2PV0_?vy zveMng(a%aUw3I`N-f}9{d7pe^h0}9BMSV-!m9PrQL#_{)rakizQNie3lq}+0WY-@d zB;x~|lo}tXqO0RSIrsqMg;DEG5ozRTTK2=8x zsb2f}sX8ioz(|@;)zOkc&Y`2J{`{#rnvn2Qb##@x{FhE0O-2uq`c$Ca{7(9;_T5x^ zln&tpx+Hr}I&;t>I4#v>lJ)R~fmcmYHcjpd zwGs2qr8@?K>_47Nakd=SNXejRDWQPR-mdS=S!!tk;V=EKPHWFqWSCa)^YW|yVlB1i zz?sFR7tz&CC|zXu=0izpH(WQba6^n^Yo=%T4PXc4NnV5N8NvwWfz4P^N_=V4Bq*E zk|dgMx{L)l&R{q_qsgQW zyIiZdsip9BmD0FVY&j>5rb&Gq%#rMUdrOJKQ)Cx8!sFTbJ@TQ~w>FW&3!9QEL>@ku z1RW6INMv#fNTu%y-6oWV~?_{U7?Rma|Mx%a!wQt$ys%5jR(NyIl3!2*g=Op<7d?E*rX!6 zsegphu>-0%Ibv2s)PuadY79w?c?2vW8F^_@2I_@%x_WW_6_HS~uSj@HuFzz+IBh$h zBaUSsr^+O`*+TRa>oNFxoHB)y9l1m0xV{$6^h??gEB9_w@es5@PA+(Jv*uk9Oq}g9 zgr(-kR>Rop2;`f$_Dque@c!Z@!p{K$S+rqxA@{(#EXDP*=YggWE3c zCyB*sNs~#KOCFA2jF^#ue6elmm?uQe1M$9vbTwYB%?l2$&adroGrc#I*DuT!(z8>2 z@Fp-Xh%Ri<$+bk(vizGHq=^=O*slN(P%(t%?3_E$SZ_KXOvi3I!;p-60}9DmYpFM#t%d%&^zuOHj@U zhtppeQoe0zLrIsl+?e8H9nVWYravaN^~6}}$jtMA>l>+o zP?>At646TRL3CgeLEBhfvxaOOr_;*%9CTe7&RpTOZn(zF-dvLF(;&lzlOJhgzoHv6 zIxr2{;_$DOHl9?K!jB3k3!)~0Tv9XUuNB<}IHmsBB#H1680gO$XPv{0A>toJ^GN#P zIW*^WqJ-BPDi0)&CgAL+->G56e9P>|lvncB3LK3-7~<;X@f4Sg9gL4=Jj;W~7b22= zx-5spJf{%R$bga*ezQ_ou9)Gi)2+~uZS^6qJVk3fVwAO)&?EPA8LzB9d4UO>`s3M= z)O%_;sq@-4spLGA$cLtzDxb;@`I3gEM~J}i zb6}I_stRv5JA3LCLvasgX_WRCp>XE?GKpz86g~)PD9zzQ0^7r(XnGpmZiKe@@$sC( zUS9i|UDo4A1+)1Ka(>FWy?`5D5_0%qM@ZV>Xg2zGNO`@6P$?=}w`CpEH8GJtg@?po z6=G&3z@mIfJc9~Eg5X&RGA&%flOBP=6bQcL1TntZw7>DCE&g(eQK#)Lqt&h*Bj{Sb z9V?rJO(i?TiNBbe#hSRYG7-bNmoIsyh*%T8@}0}q<6X(5+ozHGI_E!))W?A>-!{xR z#Obr@FZ~E>9@_mhQhyaOL#Qb+kJdTI{f=fJD1@a%i*mXxuMqoHJsFx4W1N8 z_C3c?Yt_altF+_?D0y*beF_&LupRCWtsk|q%n6@E=4Lx4pY9o6&>`Q1cp1+5Ce%xE z)aQVGPo#()_!WrYpcB>vP_nhF62`YEg79LeU05X^i2?)-~5=>u?l zQTUhOu+M?6gW@vheGW|~#tS*}b9n1ucRop#NvMlC_zM*4doRnJ{W$=iOX#aGXB1c& zAEuR-eSe|7#uTtg_P-cnPDuG;yC9|Esvs}NnIy2>o0NHc)UOW5yD*g4(fTL`OsIv= zp)=`I-B`$jEMgs3BEvx_wB^rQ4nYNLK0-0alx=88{mkpGIQyo+Mra|l`l4Eo zbO*G1D%zu^wk%B$gYax^(bfj6QriX|)% zczBAt?H7+{QzioaZczkzC#S|tf++8tB6m*mwX^CxRLe0jNhe$Sy2_P37HVK=hVqBU^h=xm7 zMr<>oz@83b>V!;2wNlcCJ8`Y58Xw2Gs3dkpe4Dn^GW84vxFS9PS9K+`dq|D zN_wMEla^u5tufus<(AZ;IiIC`nHKW-4j%YqZ~J@M7IAK8+Cm4FsXSxRhL1l7UTdCR zSfy9y7-f28kWk+0vcE5E@x~ac7gQl%SarNSl~EyGmPM@4F3}Q>B){XIx^DwifE^6*7+)FZZ*Q4wz^Hxz}DMrd=T@I97H99&% zmtoE-Hkr6ti|}GUBxjz|AXmlik_^#*xurrLK=`Jx%&Q!1fNaqv#-L1$)$$M7VkIO8DB5rB}=kWJ&B?^(Pgu&U~_1u5pn^|`ct4G;PB zdV})bh8MWrAWUrK-dyzBvz2>}xeTCCVTwGP50|n7S+=lZKk^cf_2ez5zm}*tmu4@e z?ZxkT%eh)}NjrhDF@DR|3Db?&J=YBxi32wEV>)>&=`ZWzB|6em=)R<0maUY-_FvkE zOSGUIaQ-(APTj6*({$TxpO*95g`~KU0hA-|zm!fUF4R5IhI2rIbz}HK^Qex)ZvNHQ z+Kr{PnqFo8G@IoUW9phwv{tLDyerFE&85UTM%60gr>(VilgJkR))WwbaYaQu5N#$- zenpcQ6G1Dl6Sny@PW%?j$1ifv41^2VGR>y>M7bHk^p{}aENkHtuzT8?OITN|AsT`e zi-^|);Ei535Qmn^ZLUC7;+b1+sA52je@slQv-WA2b`e#rM<=6ALA)F`|0?`+?TY|f zQlCU%<_LyejeBs%Q>4g(4Iw5T4pJyZLR;F96eC>HEC7OfIJTWN%D&Pi9Sj8=diQeP zpfN;fCVr_j7yzwk5U27Fc)Nt&u#JNw--}>n)scTb+1>D}LABC+-Ex~Mw_vZt$cR96 z=|lL1P3zqLQ`uCr0ClH%9iv#0NE#0VAdTxXwBFglP;S}L%z zgNusS(ySr*w%1ioq2t+4N66LlH{N_h>+4L!j(Rw`0IZc@exG7;up%vI?t}V?iUbJB zk${MER!?~8F_|#9jd@dn)Lz(d3L~%%wD!UVEuUf)eDVUQC8RAz4Y9lOn9bokz(^Pa zLwdziTa1;%FmH=U^e|yK#qC9P?!`UeK&s8~E$+XEp36xR@o(fWfn4*DNo8^HOD|LQ zh>+?W;&lpsh}8nZjX{ikX}pTnL+2W0Vs9I-V)cAXH}jub40l-b>gump|I)0GA!mk z3$UwckFD%K9sEBi`y~tVQ6nb?yI7(BZ~L{ET1rKfw!ibz_5q9iPFuu~Lfd}-rS1Q; zwOj)4AHKBxKeOD|+E;-{ubO}ZT}6H{z?v;%oL}o;roMM+x}CO zJrgEaUjF~Ujoz#AT~$i)lv1s%q&;6=CV|sFzyhN7I;p*6M5TK5eNw-{rc!GqgG#CD z6sf(5?G<;bf7$P))H{6o;q>AHx2wPZ*~`6M-EK9$459NyZ>bL zXuK$|UzhY-u-BPS%qm|$e!kJU$!MjEU7UW-o4O^1(=bqFsHZle%}!5o@)XC1c^Jh~ zdTn&da(XY@p2XMy@dtKCk=BOJt~!IoS`h1KaqgxapKnqctISc`)PC2csjT{f}XpxF`-M z&98NUa;N8~&6$<+U~+bZ>>1t1RU$Pk#&lXAl(+pD z{X64lyN_q5?@dl0-;?_dcE_VR&%}o=ePW|^Iv(vmM&K-zEFQaAbb6HCI+1W?MvU`-X!>Nq>h=5hS4ILVg%y@^{1&!)J33#Kc1h+&twwbfHeq|oZw2Izdvaolb= zQqmj+*pfY(;eIpPzWAF^bs3uJJKip7+>h>d(jL57;+thrSO-}_ z;LK@HF;s|CKIQ(t_9r5e!fCeoBV5+G=*-WMC>D}JrXq9CB1^15hCp8|u!tAq^?C|) zaXLF0j<96z&ydcvr&r#{g5i^0UgTjC8NE4a38e$-PoJl-n+O+AQj#%aMOxW>53%7j zaicuaxP#{tLiG+@4azEYS8KO9JP0Puc<7=zAtRJhS_$Ro2g6Q7)4V?r?d z4F$vdY!PyY*#9HkQ#|iHnmk1U&it9ER1iQ(F;xmI-TO|cZMr4%21k&7#ps4;P?F+# za=br1J3sR!zoFxC15^0>%5zpVBU=u&(~PQg>~%QB2(M-fW!B@_7c`H>;?Dcm&)qsQjUb)O9>1BK<+`s~>t1dHVtbjx zCI|}xSOy@Bs$3wA`*Scq^mgvGa!T5%lnZZj;nL@$iCub+EaJHRW=eY##ss%B;P+xxeo7k0td!s$9lO5i>tl=JSyI;) z$|QX}lk|`0OR6|crH=p5eHh|r9aq+ZQzrFX@qHKKAfL-P?bvu02gmFDaExr13_-oG zB1CJIPh&mxYOywa8yQlP&7K?93dk{yz6@5vJERQ%F=;P}-Ft`KcaNVO&z^;P9-#DL z21j&20^lb*w#)~%{AM-Ai@ogkgE&oDg&!SOKcXm_3ZjglS3EkVm4toqotrz?cn1WI zkDlRvoX4Z5FQZ~W|;e{bE5n}wPLv8$QUiRbnAHVdO&kVlIce1{W3o9?=|sChiIHlpKH98|ceZt+J+XMZR&Nc8`g2>Ak#?;y z9#^l-PS2p=SQ>KwRXLteTtUsY?ddg(8%Cuxm^w>$|F~ncUC%B0m{$XTDcZG zl2+^$9p1w^6J_X6yHnjOnm-&PP~AP6Bl^85npLljS2~*}x0j>7a=YEEZJ%rdzKGxM zwb2&hGIyk2ZnfYgJkK64kMXB@qmvWr$9Cvov$6xrOh$9t<(>GcQ(aW;uP&?}Slzw4 zJi27{g{?}nwR*HNes!g}`gB3h*6IBq$49jRHbu+Kk7M;6^~N>wb0u0>8y~4pj#hTm z>b$w?3#wZx(Y&$pwWF1ZcC~ZPEExat1Y=#`mYwy+_Rh`GoN8?p#u1+O5DmmH=8aE| zZLc&dqn&ehi~1O2w;JR1T~M|UCXDJi5^zIxIV0R$p!=ydwWCFXR;#Xo$uLoAcFOhu ztb=;m0KkA%;sJ{mw6rlV%ki^cYs1;6xHTS5i>IoJrTT!S#u}rONH{hxmqz+4#Zb+B z4AsyWYEPXeQ6C^AAu4>#w*)%S7&S%uO-`v+>Ok^4n8wLS5Jkl6%wVRV8?MAb-GAPx?1*M&xUD=5acXe~nZmL7| zd$(v7sIrj+RZBqdJ@LzMs|IqrJ=xTyQ}jX`NU7c^k5-yP!4130WA#D)Yj8_>N9A1h zVIV-ACqFa&H@Ib_TrW2_!TXiLs&xUN&R7aTFJz!m)1u0d+O;~{Qf`BsAqOQZni?|x zs+jQe=}cGxAyC`7Y66ra!i@I7E-)>}ephrc6V1PNtUlBNoa)?)>^j@6WEMvkj7{=nHWY!h-0uO-PRe=4H=F`a19jPayK`#n(SH*DngWfVc6 z6O-d3?a8ubK1MT!Bv^QgA%=Zm!%{#e5(|@tP#W zWeVaSq&Nlj8Osn32ZX~!WqcGkfB0IkF16tjq8C-Js-tLdG}$9_dPBpbjj?iVyc5lw z*agNFylC&5fZ0BqiG&Uq`tYXQ+*xUNqNQ$`*NGNDq1HrYq_(3r0=CY4n72ZAM*GT% z%`H|wu~C@p8sZQ(!Mq3u8A-w;;U8V=qumnDf|m*7N3e>rc%+FVO;kDKehp*$3*f0I zVoERO5?V=RM(R5D@YyDaU}Fj8 z00WAfb6Yf&BV158>k23u#riC2hO4y>X#5&$LTv`Ug6u~czlQ6en&Q{+RQ#zk>k`JS zwg#qnHQb18xHRRO*T!MF^Me=dDJU&uwG&PE4nYudHEg$BBPp#B-g9gMZNXpu1r}}U-2cE#V z=~S5j{G!oUZft98@e#J<0k;IG#15>5z}{$V55cR_G3~WEwAf{{q&g>>w_~ziXX+d} z(l-oCO=PTgs}ueh`|H?gulYl%crBITkQ{jAy5JG&yV_c)GGB+E*_Nm!g-ka+t_!F@amJOYTJ2z z7f8!gE%vonillqY%tO)zSh_!)hyQR-2uN6k!1l)Iu0${4^MdWbyOnl2g7Z-_4%gb1 zu|)Oo*FdRQ`wnpXH7GGnp=>EwrL79KRx80J>(4tk;DtE9vDIQ7nr@cs!yrZ*<2yAN zk+gt?M@0Tq1Ufnwfd)B&j)Z@JFiWGEK}l1a_*&;*mo(okS}c288Jnn8`?JY$g6exlL@pG zogNc*#!7;&K=|3gBRAfz8~rxzq0Hh0!ziNJ#Wlg6bgXhw(;u$LAR3y@hjaQK!it7R zz(10?`J^`a{kdoi32wLTqL}AdnRY`-VZr&~YOVE%w2)thz4DfV?^%l3C#Gb|S2a{`wBV&PEz)1`cZc;oy{OLL;bl;mF{~ed-wDOTE8x$o!!kai zf)2OClfG_>iDz)KO*(c&4KnG@J|nm=mfLF4W#db2kg~TCi9AThZ#f*rNAj5IXT&SSi+t z;ei@V*Tg;uN6cj=fxT3pti-lbW;xaEU*zgGvyS@1$DmTy5R1V;40}8n3;19J%zq&U z#CWH$>)XA+pv=We{)3WlnRSqNkGc>heCd}dP5PlPS;Htse1DIkV#JYrJs$Bno69wf z%}RSq{8Zz7hBsAl@{7s00W0~B^9e7+IkvIcgry4Djc4x&+G(?~)&jZO4qBCVtW-67 zRLpEc&-SUtC6@Xth3VzFFcmuYQZ^*L&|A^&m1{=~XJL2+G@i+77qK3=6cc{Y~B-6QSWFQw1C(Hvk2mDwp7Ql7402<@d!hI! zfA0k)gj1ju7g{vlkndzUYzg7PENO%Do4dF^%2)w|k%A<}0+H4Gq7z4|m60olM{7;+ zo-~@f!12+pdPN~ux;)u~uI9){w+7w-}Tz|!QpxX zysCp2z)u!l+|+=a7LgVE?Qv!xUaHf1!)95qSWHd!asrpd$D+WtR=Q{)m!%xO_ zqc=RGaY7eyF?$AMaNmw8wXeGv&=Vw(`=g@MS7KaUKBZFi(dti}bb_#;MyK#0Y=(F2 z=W)l5^ydSvDpbVd0C!bn8Nn$k_OYi~R%#vlwZi$QB+lvakRL(4$?ab8kl)cDsCbBg z;u8;O-i+%s_smH&6p9ye;Bp2Hh2jMP#Tfvb#TY`(ovkF8!UMj~L{c{t z4SaEQOtU3xQk$i9G^ApHsBHLsCIHM?W|s}`1>;5rx!fW${Get-N3&w}=bmx=yBdKT zdNBgg?qD++*01P?>6kPE<5Ym_MbIf~0cHlcQpoZpjVyd=5oZV5o)0EXWRTx8f)#!Z zhR+$q()weYui?j_5)WmC{|@~NzYl*5jTrt2-lQZAi0D=LDAq*q;ZN}C13)eI^Oc?O zXIOiwONFbDRjgit2R{L=plJyr?&nZdDqBvklIcD@c>`LGL5(l)CYp__YonD>NKbB8 z1IUbO)UU3z0`Q!c(d$wh4Pr$a`(L_fL2>NgdUGtUQ$*Zqnp$2k0v{6SzzEEQ)sH;_ znJzf*;M5m#(M|XQK8uz7eE}!NW6qWpLFvMASZ-Yk#=t;;qJLZLW@lW3Zg%9U*c+e` z0J0K|C5lvr_G`r$-_3=fZ~=T1Dmj8n_*!3mJA|p}cAw2Km7Ns7RNsDWwU;jSk!gin z{XbaW(u?Xw5Kmw74;%dk+Sa`jOo-TSbxs@;(HWOYB;iRR*f-lGSbDED1V#HvQ^5oo zdlHitV}B8_`$Hv4z36le=Rn~c;fm!@ybxVy4#ZhX_^2p*ToDvKDa-9Ku?n`0v(t+J zUJsR~ineDIrR@w@yz&JsJSoavRs=y#S>Qw?)P!$!c>&)OK~qPWy)kfMi9*#syF$8I z8Ed-!@aq{u1B(jh9SV0(=iR4S(d>XwrbqggTr?M2=+#)sUkjb8oW`0*nvr?50X7Qy zpoPIg*efNM%rEAgepfD}g=V@7D)ne4O@fuD+qmJ~&~~PjdJF4-i<9w-#qGxm-*g@- zD^9l?^y2h8GYF({Ix1+RY{EBW)fTJOO?*^9fM1a z{h%|H1ktp{z8*!zpd$ry4LUuUMaV}kgJgVzuEaw=@#@uGsl;u!l&DYmZd^d4br;@^ zPn!U(@SgbTJ@9mM_+Iw+eeCc1+24EF-w&|AAH=^v#A@%NGsp6!JMPHz56m1!1ZLuv z+%cIbng$^Wt&h0vwn{{Z*4gxl>pmlKp(-$qt_V#LM8}0j{`Q#Kiv zHG@7*aoAnZ=g_&7+S0pDO}W>CPe5N)b{F$G2>O&o7&KVN)&<(WvGGnich%b_zn5OJ*YV2NKdiK zN=CfUn?vJ8%<}LG#15rctCGe<6t6~W(c{XMZSPPjE z*saR3IV2NpGaYVhUc&IRO#Pt%^8?@)@(ceV?cAwpTn)+xt?{NQ&EvLmO3yN;G(DWc zHy}lwPEE67iO0-H|G;OV)7(GsIecRN0rphXKOiu|Wp1IPWFUj{INXspj9b_6AekMt zonG0S?lWZUrrcfvuF|M=`Gs~vB~2EkCu|M`ldTGFt{n=tHyZU|ZLqaD$xn$Ht&PCh zUcF7@{2s}I^m6^%aouNl6Rb_?WD4ivWDy?yN`6q&^A|CG`B&_UHsQ~)8GFTkN*Bx^ zcwnj)^1IJ7wU8;5(rx}f1D+tB&BdGhOqRW95Y*yLK=E0K9z;W-7H=F%*9-Y$$R6mb zlv-6J&avnwdvg_Z2}a3>ejCZ&lM8tP#pDHd_U0BE3dIXKa4FMJC|(dyycY5e5=`L% z@8v?Cqhsp*tVwN_*3r-x@=r1WpdG8TuS=B)>7~-k=ZaF&>WY6WNqjp=*7V-r3iUii z(mQAn6dMXCK2z#LG!%*rITTGK%|iQt5iKPU$G$5fewu`>4{9!9#Jf>2t@VC3K)xC# z2cf@1B1_6HLFnD0z2Xzc8gTSu8MX%LCp*koD;XA^6qO$*0Y@_$$-}>XhE@8*9N7IQ z3B(7x`O%!(I6LcB9S8#F=z^&!vEn}zVtw-|vjEQw+);)@iH0H56&f)Pqk{8wCMPBu z&Gv9>49=9fYO;Z6>SCNQoQJJS-1CSTx~%ChbQ)upzc4ngQzjGpuBdS&NsZ!@iGe9N znT~)ywMVUWBkwY9ja#i=gO9Suzp)w?zQ|8Y)rxS!de3wEbN{+J={FOsi*tFYGg?dHP(_ zrX?pWu%eL(j&F5|0pAm$4@a2;^w5VT3Kf^z71Qm)SReL>ugn+;EGiDtx``FdJV@(A zv4{;yxawkidM>I~pw~^zr-qNt!+6A*g_cl{7r;W8#J?5RC*>L)A<&P9N)CaJul3={ z6zFQ<2_wmWsGgl?wdTb)&u2YLFWSw_I3L>1lsYkK492x7<6>M#nZx}?UeU~M!;6QH z$)H(+hv`c%GFJgXMUH*kP6}>Mm;9Jky9=Pz<8&y`&2IM#30;{mHY=` zR?Zdq*S-7Hg*1UHBQOY;DNi0^!;>!1G+p#1kD_AGk%B!Q^vvB!|K&|q#7PYGAF-1E zP;Xa3{5-ppa8(q*5nE^*Xh+@k$rFKtDLhL90g;j-ofhs57WQ&g zWL`+0k-Jif8~bF|1unIC*2RT5&@AhMJr&Km5D5%LGcJyXv$!TF;Gn6UJK;nwuXKw; zoO?2ic8ca&{Dsj9T*$L?xL&!sQin@-Agc#DICw5Uq50Akr*Ay%!ZTM41S`(objJDk z??vl3Z#sJud$n=%=JPk>yA7Mq-g@?i_2;hGwvu~YdUtNtxHZvC!9gcngmK;IHP7fK z6@%Q#Y>Pdt@7yP1y;XwX`WUVJc@~N!;dR)Ioo8`Q4|#z{MpW9x2CeO){3X~+MMLMu zjdE~HBkhf%+3h6Fh=?fE^NonoAjpU)hvF3xrJ;}!Q3geeh@RBlC^#0rpa$oPMzt8< zr^!C+I>0bBt^FB^Wbr*sSyl9Sru#YZ&D;z35fxu25ecaw=1}0ivi;&HX`Io7e=COmG1--9M#~H-qMrXDR_PC&_zp-=GX}JQ`z;B?17EManVAbsTgnvi zWOP>G@+0V{JoYAJ!khb%2;(5qLN= z7kapt>akq(63(}uU?qR&+Y93bM^KXX^C4`Ne8@m>2(FUxU$IKYN2U+(L9UVyQD@je zTLD{na|W>jTiQxS_?NXeic9{S3v1z9dlD)+f?N1n_iH(9d^4aPoBJ{Zku?AJ-NS6t zwC`*#78whBK_yDc=_`f284F9HZQb|B1caTjzzJj^o0_q(stAS-0MT5*NmBX6ztw0D z^$OO^wBzE=>J@}Jd^$*EZMq$+K6}(i8ZtN9=xk55Y zeB$2$`YVOg`+Ed2H523?ivs}ni4jn@rLij#;V82w#$z?r zqL8->r(2w{LD3)nfvE~wYKs^G>Qc`b!jC*!6)^;9KDfgHwgM3`1ZlvzE0w~PFid!h zr|UisezFsm;4y?J@QK9`*i&~g1V!^w^}SKQ^zyI5TiaLh%biz=J4h??m}ymP5Q~ZH z>H|@%EN^UvL96z`MJ5Zm3a<`;e|Im?@(ZMMM5J9-7t0sX0TMoMnB9aS+Z8IEDxz3x z#-2H}e0336g@1}C3hU@H=xDL<$~{p(r^G4N_4W*#PILhOy2^p789~vy)MdP9@Lar7 zVXSQ3<3b&R z1$U;fz29ruKLY`*Z7Mq(&03|U0!Le6SNNqjRK_RA1~Lw@H)Fz ztQ!b0wR?PLj>?-^1+1z-4<}mLP_EbUhFb(J=XYR2=M9|)D>Mvt!OiTVm31w^=XEI|`ADl+WpCPB8g<={;fypX)j$y^AOgo2)%)ZfVqQGm5CMElAXxyCLey2|bvlilsKS>Dg^dOQSAYP*l9T zAQj)y4HYj|tl3+`!Y1+*16mqQ9RM{%_ZJ+ZkLDgCwP=z{BDv;ChC7@ZuyDBJz+t|6 zXswn8#%f%Gt!Ac6Cz=h{tk*_6VHr?zM>|w^648#8P|0JT<~|a#wnpn1SNR}x9_)Aw zpYW#$cCcq$7d`;T7)kpC%(|nXh;Mvj*=c3CBX%el0z-{iuR~YBZB20b;}wjn(W;#* zifG9LzZ4MU0^D#VM|-CIVb2w}b(o+^B(-WH(N zCU&jj7PxU~61qE{#Af=#-@`wYYSTtpcS48r76Av$1xS#VQUS)`P+a@Ht|>Ri;d;;c zKu)oO4{_L{d6K?@o#ta>TKa)?9QKalZ?ok|XYiuXUa`gf;gX8lkW#W0!KxYLA{nBIdV)^)0=qE^hP2{H}zy z^_U;ilNj@p3X)6J{*V*MKsGh*_p%~b3IJW~RKBeU*jsZDH@pD~yEGS5ZOrmuVMTVoHo2i9oAq`~z_z%^yqpjBHo(UbiiuEkLsIG(a zs)=KvZ7(&!$>XPk&nkkY0Fb4FXCZgRGgv$v7W zU~{)iY&psdq1aNh5d%ct6I+dz-LRJc+c#sh@(Zx@gqPMSz2vuS47uypDY)i}RwUcT zzZEUsl50%G!r@Jf7BFTrgOX-M;OpLrtiQ2ZOP51PdLgp@n)NKbXg4D3@1Sijk;Td5 zC$j#j2$ljsS0d|MMF4+e3d#GOZpfP^vVL6z%b2|lk!5qYOJq69oPZ)L|7=z>)Na#D zTHTQ`Q2C|Rq!PO_8iEH7tOs!{QY_llayu9+PqcIi4JY^rg z2p}hEo0;_nOU-q`4T3vbgXLzkagAh_!P7a@Fv(P^suZ9D=>g|)ExM2r0%Mj4GG}(F zN+k!?;=0c!Zeo{7#u-e}t<#Jn#Bi&;q0@W8v0S~WTDFehNZhRQoD4-soy_h^d0;j;W;gVQkNOQjC~k9fQ?%$FXTPMM zXdsUr134Tl0yNU8ZbCf2$njJiPoxKp013KE4`Q*+@KFF1F5Vmd`~;u&ho>l!d>ql{ z$E!Nw&!BQ-8@{yVwlY2tUUE4M><+<-K0B+=5(mO_g^I2}{shZS6=fIk`hnoeN(C)A z<{lia?buNpfeRLP1?}?AI5DJm4XU{n073ONp=prma|?%Eq`y><3OxN~xu`$YyQ7cK z)lZS9aST>k9*XY5Ixh33$+f!mgYE+Kn~Mw{xb%W&Mu-7rHvK>#?!v%q3?}%keb5W_ z7P)3v8ksNEXq=r3OX1wy2$kFme*B^jE{NAv`4CcFv)fA77%`*tho`Zw(L5y<+BjC8 z3++LVR>eYFvS-W%iAyE_({$|Mifb@9Z?e@6s^zQU9E1Qj*x*o$W%8iBl9MmI850Zz z7|Oa7NxQ9Y2rRqun7w4vjtOR#ADic5LB~_Uw738V(dRM|MeC+fwVo~e;HHUka~C?a zm>^+m`K#)y%7DsvW3&QCWx{1GENO`ER%uCY{GUt$#o*UilZED5Qxf6@os!kEm{@G_ zl$u26Omj|&3p(d;_e{q~`Q)2CUk6?0n>=sDC$`CxJr&vH$uk+HwCv`F&QpcR>%tRt zLJm)q0+a53ddu{4Kk41h@;QAj#a2^ol!T9Y7uy3lAWRJ=xTsx`&#Y@{uLPq=k>vQI zX6pOMnMym6?vCq5)14jpoAG!|0Istb9K6V+E0PsPKL&-d~P zs0ZepdG4Y6{?RYdAgFV&1Qeg6Ex$`cq0SQHP_&~h+1)O%O#qWG!oqxSwWXOJRq0T!JMRXayx#8t)Wi?!Av` zI{PBBC)D#~%zy?#F{Xgx!Vp%;JD`CC^D#^XCQOqToX*9}a&z4Ta)xYCNo^=LbnBg@>ctrKgi`-G^j>N62pCyGY7y-q{8atSVLRn)ua9K@5p?E|RO<=Hcrkp$8a%eAhV!t9xgp~uv2WHA6Td&W)C zDbAibI5Q%Xk}{)un@E{?JMcrVQf6KTG~_8WuYo5=%8VnzBJ*Sp&BRT+c0e*Qu=YEV zpFOV~I3bZ7lP43VU~MHeZu6cLaW=#9@Eu~l0;;!)`mn5-(&I_)$<cBAP6KW3Ny@b6h4O~;KcZn3CHe!&sT${P^7Oz!e% zRV2SiCXIQ)PJUr0>uNC($YZf~+4GNj!dfCt#RxU`T{sSDD3?NB%pmQQiMB6r4ZN#w?oprPiWeE*}1uVAgh%bb_hL^D}Ek z(lbIN)(BaPi8YdqvnGg0tdUws=X!I#W+&F{wp1q8%)lp>Si_#WNvz>0b(2_gHlGl3 zBhWA&Atv^H<=*SH&L_hr9bS5>&E3-|)rRVSR?f{`wiT4#SjkX`@@()SIE1V1or%Nt zW-+nDgy#+B@Nn3JTiDqj=d<$*<*D3ir`7@KJ(R9ps)(Ag{lN6P4mD>ionW(HTsL~w zaDtU-v!MsW$;}}xNud|nGRMZW&6h1R2=zQ2@TbxsC?}GD;^RcxL_?t*1RRRyfM?!9 z?`)YXNXWW*mTNWKt;_NG%gr$Ip$oQj04Z;(_?XUwlKw7nSfM>GhEF$EMK#(aW?LNO+X zqA_N%gsoZoQR=@qgMwkx4TJ6m-2yGI$Zgy3Rv`RB{GXe z^VN9Or)Io3m@d>v75bI1HQh-AHR?P}}fCN`~SPsryH+Q3goP#EvgVBs_8h&3P@$(ooS`wl2 zSnM8mi=iowe;w)X9Z3mVZXasCE+V=^9X%o>xqbv8Sm79 z9F+@E5hPmymE1ux{GvPfAc6n50-+yG+}SOrORtz?`oqIm2hAm?F8Q?x84g-j06;{@ z7JIZRB4m^p&ts;qFc&gm>Fu62Ql-Fnld~leKJ^`Kf5EZvK*}S`-Ym8 z_GEK>2#z#F+fZ!(hGQnA=oo5ZbW5BG#=Oe9E{@gKe`gfc47$W(d7A4)6iSFRj6z9P z$znngg^~ha=PYwhWJjSUpv!!F_f`1BqEPIqnDSa;0c4Kmx{zw2T1Qh)dwa)!}SqgTdtqYpnT;)mMk zclg4;st)-(&-ai&FNWaGcy&VGIX&by-nR1p_rC3=@foFPF?BmTG>hXMG0Wr&hP@T) zd1Mz>e+?{sr$<@SC!`oTd=qxi;S*YOL)WuA#YKeTLZi?pNebzP7UlU!oq0~e<_u(uX$Bfp<#|@6K2d27 z`Wd0_VHgg;T0`4XX9{?cS3sb{H*xmaYw8_+Brtbvi^#J-pBKy}8ILJfe4FCGtK~W4FL7 z^aV&zigSRs#)lwoW0#ucI%?9oU;`J!^f`73)RD~Sgo3dmM-#fj))tDzRY@oMlgU6i^&-;8i(n}LB=xufGa~Ppd$I`NKR_jF`KXgO{0S6hvGmHd6ZP6i ztqnJ4$G2=JuOfX4iuatn`y61hW;$nROyo;moZ^y$`Gs?edk-xFIDkr1Mc%`q?ZV_u zyRhk$B3QbnM;d^$iUWYKj&UOtg4LxId{0~w*cp%OK7wP8TqdOQpZ_%N{TNfKS-ox<+jxv&$%@eZuyKOBeg zNTKrIZ_#&d3=*4dAr7K9kkeE7^9(67<<8?7|Y+>=iWk|y+g z*cy&D8(CmoMU9N%wS7ZN`b{>UB8FurUlc?+#>h*H{w<89r}#!$m`i-q9T2$~a)~VO z#G@;TFuQb%xGR;o0ZyEtjs`jpv7ZYA%0ukzsf!T1?W3w53X=YC_sdw)sXd-hbQ_kY?0Rh-@XQrHijj1G{|`Bivp z&MFq2Up3Ykovc@&X97c2Y7k2evQmL4Ro3vY_Er0<3%Q!84nUA>8LX)nm?spJs*B}| zs9!?o?XsQVP1&$m=96WV_OE(RTo|Y7BA7 ZO$!O+z=%bxMW6siYd1pHtaUTdhM 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


    Fs;RWClu`^+sz@RHRvxfav} zk1#e~>mP4`)c`93suU`}X+rtUaJ>Z=m%}aNqZ8w`wWIwa%r5MUn%1haDknWOEUm|x zdO%uF4->M=F0rS8X)|eJ?POAt$M5GuPNYWr>uc#jZndFiZ2;DV5#VpV+1qu=C6{y| z^DhN$+SlwKgq!AjYhWh8)_v5PJ!g%;#q_7+z4YD7y1;@ElF%6NeR`g_#9n<19j9t_ zNzhOX&Gs)2TP@|-e)g0P8qCXQP8D4YG+*GL$xAP3YNSn|R=5iLKltpKmR2b3Wt>dH zls)W1>jb^1f)Ihi=&z;cARcM!cVC+xg5WqGO2XA7A7q@5OSpau4!`i9qEBN|M^s3m zPL45F>-I6)jgeT#_%X9&6GJTCUA9BxUI2-;TM4#UO-EA#(jR9ttPd zEH~^*y*?I7C^t%P$1KAX86Lz$gc+M}vWNsQ#SRe{DM0&clTIprg*O;~PbkZLRe;~x zd%V2Mg}uj%&TTgC1ooLPRtzJ}GI_Qvy@n;6iCL85s zZWH=h6wN75{}XH!o~PedR~i3z6fRUV`Uo`g?Bv1MRvIj8cv%IM{6>>KC+yzx*DI84 zD(apKjW``_E*7!-c;-RhW||%~lHA9Gp=86jmE^Hd&8-z(QU*%`P()s)nDMwWV2_R< zZgMDm>^GH8ZUH@}$i;xb@2K%-F6jiv4-6{wqA%y>l^ zEG2Q#OkQTho$#%xIWWmy``NWO)%b4?aBB@!9lc&3-JbI;A=kH(udTaSW<; zE`o)<&XT(mek49E-mV&OFV!tkq^A|=-?35n3bX)-i*fiI`z7yZP5KW<4U+1TJ_wDt zS%CB;(jz_{CVfP)-nXN$BNluU8-=sLE)m15tlxjKztbG}Rqzi-Nsn=R^veccZC6h5nhbLncqzXxyf8rcL)jwe3yTq9ARSIw$q+gB!UYpBc zQ2OO0r;$CY*z^m+<0g!XSkUp>D^p1AyLYPeixLD?SEft3<~u?!gaE9Q%zLeL&rhio zpO(=SPR_$_+_X&8eO%torZi|b%%Z+s2JHr6$eg{QrT_)){4|}upxxmi`Yk7Tr*X*y z?~VkjR1e<03VM;jyVt{0Uhpn6l~fS#h!EV2V4j*W5DHoj@Td~$!OXUX?!>B2IzQ(Y zVB793aRqSaJJw3(t%RVmFKnf6&a~96S-dkVZQ%KvHP1_h{{q~uk490QZ2sG@QMk>Y z=T}ipX5PvxU_9CC%4r>kM)+$yE!1-WE?LT_&_nJclzt`;XO}}T(X)iZMLwhii#R;of@c(j)fDQWQli4HA#~#*p2IwPS-xI zm$NwKZ&SDt+GY0r`1fhOkq5!;(;_G#`&r(_L*e$bNGP4zr}Zgz7^YEfF4u+LdgXmu zAM^3czfbF1EDG#a7lM+lXN63=vrp?@7D{PCRo$oMrIUZ3*263YA#@6n>s_|mOGSj% zXSreT)0)RZ3FXFA?bGry#lKJM2`nN3OtDSDA_ZuFZPJOBRBJ48h;A1&nkwqfhrY{FH+Lh~k}_CI;<_8T@U5vid>gqu-yBf9 zk;`qBZ$hU_B-8}La5z@rrxYM#SW{0^V(@>rdy=tf9E8Ws9~I%CG|s&#r1tlBwlt2Ch-^A%A1w{~ zBbnCm{iOBrKT>kVr*|}|lfPp(Zh9wbzn8bOZ4>-k^e?tV+rnw;Qfo~rI%aO_gMSCW zz&ZOwO$`eE`AIx|!M~+}3NR-KsL{y;0e=AESUm{18ptbyfM>x|UJ%eXzf>@ASs;c+ zP*BYzh$P)Zb2B6;c%dpf97)eEcI-8Z|CQJZHYI&)74)>=>6iLOi+6I}4$ME7s8TkJ z7~sBbiXuFD4gJ_C+-q3a8TV~V)KJMtZ$TqYJsSQqV#OI5hW~tt__Wx6j&R>5qp%}J zyb>FQGa};>eyv7030tpT5s`-WtWl8hkt zP0engyH7lMysUL_QU|E zO@XN3s(s44j;oFfs_<%8!|9@MRRCbw?5U5Bk8TlH2Em^_cQ7Cx zWh~9|Yi5=}J22wr8YellXZVW-kLN*fMS}z-q`2xd9tu}9D4`fdg9mC|<)g2^1V`5O zY05r>9gw*gnnuOcmk(a(I@Hs3BYy}oU$!1Zr<%3&UD5VKiwS3S^Cx7|i%UBFT z=oBL1Z{VSD63%i1Q>|KT-^oG=<;GN%4|?{uH77AGxae_|np3YmLgZTn!}Af2pGktoS%dqG93qy4ps z6U){uU-jS1BGM_Q ze3FL}z?6_x|EoL{PJa@`LImu4Jd^-jywiQA(42a``6Uacw1i186&7|$DSN3dT>V1m z`VSUiHV{Os->>KBJAm6WPEiXwJZZA-bq%|W{~5Zdo5aPy>jUr-axoEW>>?ftCnE%9 z?py;G$uuhdas_1>4{Lwu$ik?-Z*yX7Y;?TU*W6qmZ(Tky+G;c>Z$L!nz_%%)Hj7P~ zWUVp&TYGxlxiu zs&w&AnJ@uycsJ1k#G%xoNnPjH$LnxMb7Q=ztPS&(Ci)kmh)%iv|H4LWZvRlYl||() zlnft{d1s#$Jt$KgweE{XhDJv=*dF}yj7V>U9OH_be{Taj38Zv)Co7Hdv{gcdY#H^Z zCe*!AgrY5AKZHh}EnxWC%136`KWkr9dv`$+#Yy^0kL?ksKRaLM&K%kV_Iok5{7+4D zBeFsw`4jYQ*0iJk^cF=(0$IrBZUWo$c{bJZhmQJzup|IQ1eQ4;WyqrF87A66WdJXP zMqIgvN#0}*d>pY2>|pr3f96~P>$t`k05TL$cEXf##CJ-q^P^Y_?2y9}D4 z)Wr~xqOKhd+FS-~GKJI~tw7z}J$5fDgQZ9HrmH)Of z19}TInyP7YEA(AjCtbWdsCHQoV%_lk$ud|<#=4s)@vXV$`ZiB`zB#s(fuZ^2cA4*@ zrA95>AziRE{(Mt+;b}sH-B*-D1&Awb@Oeri85fvq0v-{?iT2~wCLt7 z;V&zLrBC(b0eF3R0IrRIV9gc4XCrvN8F6idDPA)5;^Gb_$hx?%U~$P<7ksZZX^7kv zV6)Jk1q>f?<QG!73xDLE3j;7?21m&e&jBulUx~U4G>3+qblot#DfB z^PvioHuOkjH!{fb8j2>x-hyuVm>H7-B`j)E@B^SjF;r0Bzd_0k)6$_BDlz151h;O1 zHs^L#;qP)+)d1ixcU6g}%Dbv~oN4&K9Jj^NZqzLU%e(gv*PG4BhDn0tmfc{um*bdk z#i#Lf^x~=1=s$EZYIB(_9DKc@Dug` zy9Yn3UOaQjj9qqddh2fX55g5IeFH<|jsDi?_}0F$dTX#3?kXF{9bWjy@X)0_eZx5V zp7Y^Pd&k!DT7SLOxNHX$ncn@4(bFALq=&hxn)RwMV1%d#ePhSBmPt_>+uA!Y+7Duecl(TP zvL`{0{Kk=0wJq#+CD848_DoR$75BBK`+uZ}`40xUYw+8aI#H!TUxb*MCQ9-S>_%=8 zGw!9%3|EFG=ezIqa6VEn9B#*&e>e{++B|c?j9qs5-`Sl%yN!zbr&LseQttGwyUz5t zpk28iEoon8B`v?;@hi}da|zT0`2$RlFN$vsx~|d+y3E?(lC>kbTeV=i^sL&`f_8--G!-8!NyWcZq2e>OXm-|iaEUy{fEKi;4uEFSe%ION zieq`qoZ-~uf=@K~-=GophIVn`5(jpj;aRIJ1d z>q=pYOtyC)Z)_SGm`pwfQs=)YQV%CnSa=;YDp^=KI4ijy$SdH=s>0PkRPpEalgR_> zC#3ji1{bH62@wB<02FP^klMh7cwZyf;Jsj$30t-IlF>^O@CYsu@{Bg@Z2H9Tr%!jp z!U`U=_sQujd2F7p@=DIfKBS>EOM)~2T;Kq(<*qxKJs+5{>)6)G_MEY;E2NQa*>C8a zKMLT09Opt`oGcnlwSpDThIZ}Qz&fw$#T*CT~ac{C-+cZA987ohf|Ctt%mT0LJ)&vbldBwKim}*6%vpq7yAZxauv-q?ovv`vx znfXf7>&7U0Q9$*@*ocjCm#OD`o!1yw<(=XH84N>gtgUTqs!t5J;2POcQ5t};3iT}e zXhL+Q3-5_l8odTy`g7`+HF`u5C=?{X3*9J{!CL?5NQFc(N+V!F zJLgwT_gkarPK5~n4vjqJq4?U0DP-f+R#v{KJoFPzfBYOeZC8N4DEX)uTmGk}YK<)q z{S@?VMt_Bly%gXI9h+*^MTsPkg=}sK!gruklWO@xM*xH+0VpCclOz9m8L;<3BX$X! z3(M5NDBhSnnS2vI_N`K48B3lD>yO|?3o3LPt;yt<@OfF{=I6*CErVttb!Va)P%};b zp(oa!FDSv*xzK2;=sOSkE>GW$HHGM|@Tk!|ybPLw^gX$Xf>pz<)`>>+xH5E9rKQwvYSqAXir;xnwu0r0tQm4rf`_z`_ zn_g5~dNyLdCwO9OZn+%?DX>NXx8fDpItsvgwU_#>7(*GA^(wB})Qb|^^lwdz-$wD2 zRMrE678#X=uREu*c737UTfQDL4C;RraH)#Qnh666QdyEbVJhqKWw0awl~mS|WdJXQ zM%*f1g}lqFkT*|domvLVRJ<)q%av}Q%JO`39ICAN*{o-%+h>rry1!r^#A~Ywt#(zS zLvDbDdJb72(Hg9`YMbk0O;bZdOofoQ%&som?2JGl?TMf8RB{?)QF7zO=xJ)3!Yf{S!=X<5v+t&uz_EhePp}wM^FxB3^ zFrZheY*W!q6{Rg*Ty@%}(cyu{c;D!zKKaz_YmKV&sI!M~I|Ugv*zrC%Islbdy(&=H zgRyD1@~Ve};*@1+)Y|XZeky1RFgW;J2rK5-kG1c02*-BUP1M2&YeaR|8Y&IL;0~5p zjn&7SjXs$ff^IGy9UX>}uJz*+jpa2AW%YsP!ul;bnHgU#$LclT$>Ie^Gz)FiJ*X>s z4&oUuvsU~^dg6b^Q9Jf*=1-^oMA~*olBTm~fHUt~6Kv*?8r#_OZ7B=`Q+&`8ukWU^-Xi{sv}h(kyZ&Fw3Htw;rB zQF4ni@YPw;FjB=vF^3pjUFMm3XF70B)UqX4+rvFb?`!J+*ZcaJ1iG{R%jv zqlTMdkk#ZG_tbjPmLVY!zkn~c9$sxg(r)bP1)HwE*>%>QF$j(|Y;}TQlCb&2JSSI9 z7JeC7012YYXB<-RwmD_(o+c+y7W!O1yrK@MjEoL6x~`}XPc%e{klbpLo@@92GYPbS zf5n+Bywuv7aHgdR`KdwM`qWBdN~YbAw)QdCb^ip0Ecf=^hfm_ZH}OGmAUO!v`EQRJ;+k0RVL zCnJBTthil^(;G;7Tt+z5qUiZW&(6QHvy%@Q{W)#h-ri-xi4#3MTvxBT(^?eNBaF?@v|o3Q&`BRg%#xs3n<))=LHV$NrFRh{Iu6RbLeKk zWv=Mi5X1vK$_{O}j7aWbe5j<-dZ(${&r&sCF#E*df&}w&9t0%72^Lhj=KQJVfB~IUWip z4+JG!rvX7ax6t^TESS3B^!WGchMBNaxp5@^?+d zLs{4+o1@f}1XE!lT@2%La}k9s4I%bPEW)f-BbJ8T#B&x8g}aF-LU5kJLn#)V#J-6K z6X|N&%@luVL22-?O5DUF5iO}#o@mE^#6kb~%9rjJD0Lf?WKXlPLfC$(5x<5}5Ly#cx%hcpBS7zQKYiPbmSW)0FaGkN7hdg%C=GNciu0D4c|I{BT^)zq3$E zv!kl(>6Ke~>J(V2){*G@yri^QLr_AvQRATma3jQj=;5Jox-$ZolX)lsxcFzfb1&jQ zv0y?)D|7Q^@x6!z4uhnWy;SF0V-ai80E;kdjS-X(Yiyi{!dYVxxLnIa;berM*w$Ej z+b}wsj-b4phgHHFlS8msYzkb~%j3VbPiN5q=wuGMZBt$=^In!fCSp;3%@o$kyc0(3 zdOYShi2Y$b1K=CktfmfhSLaj3>9Es$vc+ z#L6gzQQ`|B>_;f80#<(EeS61cN?~H^UP`vsPR!4Pr$bu1usC@b@slUI+(+#J)hRuC z#a7$gpnYTtZ1gchm_ZVDNN5#k=&GNKNQHqsh?vnQmLWW?u zNDypwYZGtX)t72Msoo^i831TRHckY zqEw}fW{sQ>YQs+-9uG!)x+3;*oxtzo%7>9(Saa)kR9M4}zo^3IEw1I0-&wb{2&$91 zd*M*6R&d=79P6<#Oa7?Th5A#ghPzq%4+L`G_0_?E-b< zaXbi4FbPVCV6NezaDpkJ7=l@@JnJHM1my)344Wzf`ZUR@5E>4#7_gypf)bKm*}_BN zr&9B)ze;UfCDn^bv8VC(q3FJ zMCHFSJK*zUEJh+sEe8;>Y>=M;IxABJyjF`;~z z^-eS7>L^4hC3Yn=@~6b`7bhilOo>E~p~&4H^YvCLF^iH3F+khdbcKuZVaT+ia6g@> zRuAZv@?lC&Q*m(fVeKCptnaPm<+60BurRTxj#QQ#GF386MPsnJe0C0frR0?Q4!r!X z-tk6jVtk~xW^L_;^sG`Hz2lg#qLaQvJlR}@(*^V`KbNU<%S>~KRk53}!B%Z3|oFqzBa!%*wFMh^}f)VMbHMX@DZc`ZG zax+oVtl*C6`+O;Yp{KK5UBkk(yc=E7{a(6CWPPrI$qFZj^sJ4^{?P5R6v5R=pd~>( zQUTt;uk~cQhn-A(YUq1u+xGi+h$NvUWx~5RPU&0MQ8|zd(MRl^ZLB`rp^za$Ci~Vw z{?7Nkpxx0vwYWW;icDO_>mg_tP%t=%w{iYD;9EQJqXjv600-y^{G42UQs=~hP)iu* z*WPX0pvzy~xbQ}%EP4+^Cspy7_k`gEhJy}gF=0Jsf)WxAI+}%I+Mpc0+*^U#RTF?- zI{Cvvr?VJ@&?zJww4R5;g`GKW&7ES;^Q(Rry6J~oF7l>j=;7%FF)EH#qf!~Hjwt779yTEA~5Bw24dE$YA#;^(v zLbR;}_C}OY*$!ZXd>74#z$<7wchDn6o;uf|Hr##@Jgw5G(Bd7`D**QWl(6+iJ>m9U zqYz%6me!r@X}oKjca0KL%vYMM{}V-43VZ$;8?o1qTBlsT$aFnw-Dz3xdI%}WQw%qX zJIJEWigfP7K<}47NKrbrcG%QD7?TKPztp6f_p(sK7$uMbr(MuU1WxU{%J8)rHT9V0 z)@?ZLIf`n^(bg~Y2oH05%{Sd~gr|YPfT-2P2=hNRt=8CkLzh6`<^@2gCllYjp^{7% z%DH!zom>V>0+3z7Etve3aOac(d{zW`lM~=$kt%OoIW|1hKh&DML0^EKy*cz;_`Kuf z9VmlkD0y*;D+!kO!)fVll>vM?G~)bnQ+i{`dqoxU=H0K8bxN5rSaEA#9N zM5-k{4LAK;WA$Z+?D@JGhe~Vm7qLf>86Jv0nwhc^aPx<}1W{v$o$ z??(+-Bt#Y^cZah9aqBP}_K<84JB}2();o>epQ5lMc07!Y!r5`SOb62sd2}~AHFy|k`X%shDg0ZuaS|7K8vYBPZ!1e1=WcnW^zP#Rh{=Z8 zM{>()aXBSF)neG6fb*t`?7Vzn}$cX=#XEnTV8)LG$OAQ7#Qsr zN3+8nfd|{keYd5Pw->{M2v|DAPuS~?n`Om%U*X6-Zl7bYuc;r2w$}5nEV90 zk>v-v&SUTFc;z*V*&pq4(JED1Jbt^-as^+{y8Y8pt0rg5N2p%8w`dL z%|kHv^)yiI_Wq_xJo6Ry^mJxg?va?gK)Xz$+<$)kK0F96|3*+kR7Q=5!sXv2l*;?i zj%G(-u9uciRCK3XQL4VZmo?8PjXT`V#l^ix=Bs)n!$L@T28#%*eF;iPTJ|Cy3MUp3 zxb*W-II$oo*`O{gbM9&3m$P6>^FDez+G#KjRsd|9E`KYUoD=rfCK^ijV@1+qpr*m~ z*41E7%;=+hb7k`8U3UQqh5xx)?ZCWVlxoZWK$`7AV7kE=XD+i-a^Ozrc>b6poJSw}g@D&q^+Z(C>Tf=vk#k zP(qa2FL@}OEJWb)2oHsm1%l$`w;NTM@voe15X$fpwI+oexAjutEDn*6MJ%$ce9$Zo zIlgom4~09vG(uM#&qLwlgP?>TUwRr3YyY{+*@wR--w2 z16nF`;9FQuYQhCK`vm-ENVwQis1TMS0k~0-Ta0y>= z=JBvftT+-;o5iNEWmg>jTYLM34lx>`v7~IR>v4UXM+YW`8_o1?(Uop|(GzQ&Z0|k} zH$D$cCcg(~&0o=~$LZz_l21URk`=9kvy%J4xe#z=IqS*5Kk?`FlgR_>Cs_XnKLdLZ zRqzn(fKO5M4;ID3t>_C+tv4I6@u*kbU*CI)ypQ-2TI3hBXVWJ}c6hZTNtPSb-Y2KC z)2Kiv{~WFte{!+D1ZZUoCSSxDKUeo z)@t|+Xs64(RDj-B2ezd?J~DYjvJeK92qrxqpHN_uML1A}Um8_fyfehifwU+GT+RRy zrj52k$WaJxL#tKzD2kv#P{jOZb(!uwc>p}?uR|9PbXug zhC8^p{iPi`(_tW3bSUaAxy0G-QgDMhS29O)P%0MvLc1B)lk}+sq@!8}x!lNgY1^Gh z6r590|2Mw_DWXNmn^IQ$a(el8?CYRipf~z%9t7us5R?#a>f<~V&I6H9vfil9rCAGq zUi|Y8b_AxqXsy3h^E+ZGHe&i>K~9(8Mah>Xr$T7>6BYy3N+&2G9_ep+D4aY*;PNOB zg_8$@;`c~}P-rzf_f>L{_p8~`Opi|NpgmS71h!XFG`a1sO;k*O=Vkz0KDjd`Ih_?O zPx8@T2JHfM+DSYJPKF6e$b3ADhr-FQgp$>1kvW|W>o6GEYN+Ur;_p-e9kWh+o(5(ir?70%`m8Tk;4Fe@W8 zn?oXPpW~r$k+uk(@l75ICnE$UJks`K9#)A+n;e48VpHJaRvwjo@f0>rO>XDUJVA1E zI}by6^&?XU_hX9ZPT;4^{@e{u?QGF^TgN!nfhCJ_u`muLQPhS|*Yl9@ zfrpZuzPcuh@N05E$fnV8u}c*z@#`b7RkeNvK0>OkG29eyHaA*zOti^!jyH?we2=ON z=~Q>xM*lH80ZhR)k`vdE=m9Z)NbO-Qo6>`g{}44!+P?Y_Hd>s}aB;mYI@oxPB)GL> zMjdbrn`hJ+wDPN(s_Cym+36LH@g8|5tuzVkBRag*@s!T<{-!xJYf_3^ab!pY>*R45 zyFw$eOEt689e*+R$v~0uay(==7&|>Ox2t?bmdehe^zUNu~Y63rIYoiv8~K%X|@WQUl9 z^)UqrYhVAl$!lq#aK|J+d7YCw@9_cXmguCLC}}68k%ryR*G#SW{vWjtZm{CVA3R)7 z+qS>GV`u996qI`d^;W$34l5*$^>z~P@8$fx}~jxPL2rla+eRqKW$0K^fM=p&#(lDe~Kan)L* zA~Yd`4X{@b`qHv<)CHH|w!dtbEm&DhmtLj-d>~jy(6$YGI@vMdXiB4ZU zt?5w7ZZWR>PtBDl_E5xU~f?p9eG&+8+8BTD-B8uQV$0?ekl%-lc_(tT!ss+*Cs5^No47JUiUxdF) z2lmbQBpg`rRKbBIf3NHbK*vi3dFj@^`uJtd7_W7Cf!AtvT)|yEBV)l>J$IwTlJAWu z^wzRhb-?e4`NxGwA= znRfaxM&zFO-gIf_I}H^3GVe75znL;2&bhq<+66kdKjuMj&MiR+ac+OZL*blT3B_=3 z=lSUDF<9_S59bufzp=wG%|O%MNSu1#OtL!os+xjossHh@&3|+8<6g~8ZMLR_pm?+U zjwyEt3ni3Z@mJN9p_BirnqycDLg*AC-m7^ioOnlY<2)A1_QegU{$L7P2W0lM7zA*` zwt4cSK~ibhUz-Fnqd{L5v(8={-EZw^kX{>;FQG=6-e}OlytR=N2GTfW!a)BCI8_e= zy#jbG!$7ZrCtn!Iv0GI9r^e%B1b!6p!FBrp@*yzr^P)3`u4s%vjAy_)(i%*$iOr3X zR&%*N=+2XENj;VAWHj37 zcr!am&6$z9ql**1ByoN<^#N+kDe0 z;f+*f3|FeM$h_CG_0=d$DQ0y$H1fo(@U`jPcuYV$W+kmb8l-C)-s|+1zaF5}Q`G7n zF|zzmO)D}sYIPsf^m}XXYVg(5z0~CzS!aVhX8y zbOq`rdDoPjSq4iixjr;`_v>9f{^%5k-AkqMFz!e2MbJY-yT#e$fPfan#T#n)^a%6i9HyB8uQV$0?et zj0=BY*0r)Inyai_f1_@x1(|3rYDpQ*eLo;2qq*W~`l7jOa_#1r$nFWDkzLm~&yDi7 zzqgY_J+l}W9kFp+qEzdrDb3@e**}JMfzj;W@gTTpHbDsq_x+8B!iD=J6eF6Q zCel6b3)m%&AwB=Kw&jvfYSIQIj=d*dMLeWVPV z3MP|jp}-P-qjZY%R_l>tSfb|Ru~J~2*jxVm2j;KlL2z1VG%H>AEA$yV(@iRs)`ETu@v0ibK@1y>h-k|Z3;cI+O09oUc2_XL$;8#6>d=oHF z29VzXPrd*$Vh1Hq?XbE zaAYg3x84>!=~7Q~aq@YRJwWX()ZQE4EcP1B`=QBCGhgX(el%*F@02FsC{H;>G&(}Hv$#N!9c(H0|C8~->if-l?``KS$n{-5Rh6l=K^HG zG%UJ$$Hm>Ny|vsrvuy)RGwrXAIPjdH6E11a;~pqQz9Pm@z(Hw0liIeN6z_q0-0M`( zVIO=FC1m2MLePQKSd~3cPnKdL(|0kkh9`!`8Xzs08(xrWCb#ElMgGbK9h2h?PdPsJ zo+f(A1h!vlsd^$X##A!4RPmnl(zI>+YdcBEL@>^+6PqUqswgf=s@-JY&t~=4+_br3 zhVe#o;?$IyaX#`YXcy=spU;Efd=Y{Y;)`6&L*aZ838l0zGR8tS7praRiwp}6*)uEO z7m+luRjoO6(?{<0^z43X`yzVICMP1brq>r)%xbzE_d}zQaX+2_C{=eq-U_`)_v2mg z5^mbM*<=78^U5`a{L}+l_Dq4c%udAM^X5Y z*Yka7v%|vEB{k--H0vgcm(=3D-Te)c*{Cc;#jF` zmo~oCwdb3~=)mOjUGvdxo4*33ieOQ4cLBW&rw~QB$oHVVNS_m*7RMoGUm%>crn0Nj zzcp4*e7!AE`K-mE(roL-M&Yx~lcNsFUY{H_G|FC|2#wr$yQ`$BTmZ3%A~?@+^1_v# zROsfdWaLv@~_AKPR%&XG2?XU0HUZzVm*U#L;V27lsb}}=+nI7gW*--I8{i*4Hb4tTF z-}05vF3`7p8xMl>EeT49Z}|Zp3g=r&D5ZVNFR+kJ6>QoF?gpZc=U+c7IAqVKeBV;i zAYWyhzU9k2J)3Cax3+JoXKK<$YDwSny|BYt-A3D9fQ9#Y8pdPofsr#4n;2(7{dQ^? zA;E}3(&kvBe`wQC|Kttrxo`y)*wS!C*JRPv4G#!#+#;W~`PAcRgKI^`%H3a3+8ZotxMi0xBYD52cQY(VUSGG{p4vIl{6 zT6q0Cxh`Z831CX0`bpj+4`uM{lj%B#H5=V=)^p>|HuNR#bdktJt0q8WRF76Qfgdtj z^)K+`i&nXInTl5(T4WwBn*>C}O@2zBL!e{}>0hu53e)1tM8v8E9;mjIF#u7o0qwj; z>_oKC=FJOOku>KPGDfDxc0ywkm~$;r0+=(kQLNWSk(~VMo3T;2U%g72wRQ+=Xh21< zP=x3>9dY8PA!3`xM>l&nE-BNP{B!lE7Nz$_;YHD`cS0jiGz(vwUXRDV365rc-s#J> z_*@aEXx3-Nxbitg7fq(iHG}|oCxfi)1v(Y--zn*ECmd0gwadhc1 zshE@bO3(Q7*%{Br{mx0-?o|ADHfCHQxUtQ7D%jR-6xZ)f<4DDTzW7TTy4hWPq4-UI zX;xpBvMVmc*bnUjLyQwV2rk4(P(s21FW{kY;Q$H62r}iw!R|3W(&W6E9fi5- zm_}S-xbd(6)lnsm@Jhi=+X~4KM@o9-ufk?HvQPAENbDg(9{UUhx6aaI83Cq~r_%;X zlr!%&7e3B%As?|1i@`dvK>z-bFY_Qcp(ZFHLVY(6g%fHC#SrRw9ycZvtjlQ6-KO2w6H17BK=L za9PuVrhz1awj>Bi0Ee9fH^ke-oEcvojOaMbL!MNRq@FrA~4*G zsl7L9nI9)HYmbx~JQJ&VL}rGe2CphKPKuUvuu(ExREK%xNUMboR+UKd51=bDjc%`! z)kl4i@Wv7!k*Pt-alUUXgcwCF-vN#Ml}GrC8C3!&_30P{DvpYl5x385#gfR#;`jzJ zL|eO=s@90VA)5k&KUW6yO2Ho`nTY_TYL4D24Q}F9%8H@nPZg{dUs>EYJlC$%EYFqX zz$#Hg@}p6=`or+IAytMuVBRX#naM-c0&=e-bUfFozKN6w);B3u)zQ6{7D zNIA2A0c};?nOz3dktysmBhTQk}0@b&e! z*s4NZ2*uf+xO4pdE*58;2o?uBKeUR(d)6W!&d6yLW`p-0DlABz??m%ji`T%sxg_UvbZE}ODNV#@@wr&Vb8;w1DFq9Dc zf7G%Xv$D#Yj!jA1C;A0dehLbO-_SQ29_up3x-1qp+Qhb+W~;?Fvh_NVdx`tG)f;`T zcU|_(`do23`vcAGS0o(sX{PM(-=)wF^lZp6M_2J6xbPoA2?_t*z(e7}e-cXR@ZX17 z$fj~Hv>#J7{PzLDA=~lGihwa3u|j2rmDv z9kf6dNfR!(2EX|yS1R5pv+&Dy{PP|p#; z(g4n*^5!sSdwjI{k^O-d)m9;r(T>3=H1gy*<7;!fz>^FRoacOn)0b@_Oml@(i1M8O zS&S?DQ`52)&2xS&^lj!jquTT4IVZ%i@|<1T`0|`R-}GR-KUhdKTivd*&0wN|7RSRm z58$jujam7R40Z$^XD4r_B6H(sODzoj;YRi==zfaTlxswcvmPNPer(?>_@ z(JJwO6r+q+EHo;Y6Ea0eey}PboFZ3 zjuHD~aM`wGk)GJ60Y6N}#vyC(bDT!DhK#wjH^SqlBn3?3<$y6*$LA!FI_!eopCU3xjS{#G20{I)fnS^h{K3XUUf|!$1g?X+hZT@(NhTe_E!@^Tt79h< zuwsDyQd8g!ECsUTU$2FBfq~oWc@SLui=c$e!T0k}xH%}H81XN8hD1sUNv+}WxCLFxSZFbRPvu5@jG_-Ayf*H?CsuZo1_BPh2w?T7|@DfAq%B6D{{9V zigH5QZkTb_<-Z58qn|8J9LYoBbc}cIU81z}tV@hZv6_d%=}UqVB2}mIPy%rA&v5kC z3}jx&f(aF?)S)D^1(-@R+;-V>EnNsr+bpuIA4rz&k$Hw=J8M-UAFB+KzLJOXN9dwv z5*97M!|)P(7J?Fj%hfy-PCf|A{P_khl3^4+lz(X5^L8HAQ=uaZqs~)W<6~o^&31ol zORd?yaD22~Z%tf@h|Ys=6GUwmn>0~gB<@4LT9`#!tGeIX+d0|`H~h}H?6EORu;dxe ze`+0}eCHz|H>Gxj^t2~BJ2vZ^h6X3%m%upvdop@F?h-a$3yn(d$u#D~56*&hD#Dc; zGIs-?#GkL8h#yuz0o6qYmGZ!Wq9;NNTttOzqwIA;tyORJK}IsUEPdyXZj9>#?enF( z1)6>?ePYakdtfBiGR;&*o!v7!iyt%Ajq&%f4_X;WkOqJsIsk0(fD4*;0cLDJ21g=+ zuXVWewXCHA3gchpqV0Ro7ngEnFx7GfAA)wBxxjtt&d^%b7gM{a)*P9*GTsXY6$>Wq zjZcDci*cZH2tOQD?<_!j$;??kg1jI%xkWGzo6@oW4?d-Awr}90lrk$RZ{_ik;D-q3 z;UvO!EMAV&fPaQ*QF~IeHr6=n)JPIW=jN4btX0`|?~;R30T5emOtqqsno+#aR4tuc zw_@$O6OTXV)D8WopRsmb|ArTwxo&;bt#n&2>NW}kwXA>ieQM-IWt@ zQsY$w=d$SblJNjr9j=XR9iM8(_V-7R=ws5a!h;z0~2S0=+!9Hawo$%~t#|Z!BjBlaw)13PT*pJ<))NFJ1ef(Z6wY6iP#TN=e|eH~#E~bhTaZwu z*OTkts<5$EEb(&eL(FB}I$jJfOL~dY%Roo5!>Cv3KVAr6k|=D)r$;G?CvL)*U?7EK zsYVQr!V(;OmSdS&dx4hr7cfAh17$5V4REuE_HE`TX34jA^GX zMwqXvdpF1QgF+p+pnn9kY(F}S>En~6VuvjiC{P%Ppl-D>ItWJhV6V}2yUR4Wor&o& zQ|Q$}?h09}^l_!U0Q8|Jtt}R3B(-R?iLwBq2z;oC~A&X#|&dv(GX(f45 zWY=nrY+@`|ZlH;wL#a=?W?lp2jOuZyR&WemITs_l^9XbrTxEM(?TV^zw{4U zKi`(1>9gm&@25!=--_MHy)3<*blRkfCataYj#HQH9%Y<<(}~uz@i*}nH#)>08s~4a zIA@2|?uK?L2gZMZ&HX$G&VeB)Ar8!=JQU7>kx+~cBnWU3#WHq_#P6Dje`jHvt41q8 zkhfd3SEe3g&!@o%g0Y1pEIis!5jj{K|3z@lQ5LhozFILlwBCOLiz{hk+gTGKGZOb@ z(X&wz@c8Y69`J7ISttb>ir&7^E>Mh*LZL*%SR03no;wO6-XS$(C)ZvmLksHfi3Cta0V&N>D=f zMHlf%tH?{wTFBSxaF0jgYiW` zG#Lhb89eDQV0uBVD*04A(OrrgwR>u*3=54n(Hbgb(>Yp$@iI{sh3*k%xz;FvAL05o zIjST7L%oQ5O|Y=yVv6=Nufki%Xt;w%2A` zI<H{FDklt_|pw3Oq&Ar`5gTi4)Gc8Z00!a>_6O1GLEw`Dc|D7*iKACP2t@hY0}aR*3EoXP#=D!64t38c<@ zX2Q-_KG!E`BSG(M91zk-?sbHGs&!INLY(5eADXc7Vc3nk`_U`C1a4!_6kgiGn1t<( z6Ii6OSI4WNU0_`JOdbRm+aM?*v5gn=P`Guggkr>ni*9d>v9L|wrO+~NYPL6q1?L0%{&xNIwcfCI*WxEKF>lnSy@OntA-fv5F84XLP>)nQpkU6hjqNl*$(S0)VD4h zo`OFb>fE;c=+rQv@($6@1qYlt;@=_K?mf2G;;@aIBLu}uDJK}VkcBdBlIo?Ce}Cuz z76W!if}n)xk|TL2oGxLx0fKFW8CJ7U%5wvuRM@Taa>KtrbT*4Y05^CYg0Te(fch24 zR0lwp1uu;5PYVfLn@huzSxCp$eb7%_$b!u>dr&u;a&y;*GJW#sej4G6;mF7(?w= z7p$#^2b*<$$LCaaul=Q0vLbIz+9ck#W9vq^cvwb~4^|g6}$c zb0K0<9C-p8P5PN=$BF1-_vsJ`hPcJy5e8^aq6!}wc!ZcU%B~PyS5SvW3I~}#S_pRv zGXFa?@*Hl4ugwUvXJ^bl+)OXOFpUI}Htf=uoZf6-#1(Nm*y&C&vg}Vy*SF~LW?zB6 z&4Zm#)yd<{us#jv8ReBFrKC z%oYW~Fp0-s1s=c<`F~g#gB`mc{gapZO@w09RC1D>no|m zO@fK|*^rweK5y5Wo9pd~coFm+B+UtNENOOWH;MaiShsyB*Hubs6Wum}E^Z`9_VEp~=lNi0SEt%>%6LZU|I z?77&8HD^|7>eA!I`Bu1n)!Y_cG}LYggCr($3w0yIAvZ2+yaJ}F zeXWpyY-Sl#8|O)(sm%|7vIW$7L}k|VjcCJJtxElkx~0`-j)z36E;pP10Z7TsX7N;E zvzazy->Py|DU&!NDYW71u4D)tiQfhx_YW#@gG=-R4&C?sAWJcR8ci z%q`{4+h)SXW#*{!D)%0wa7RW50h`<-^^5ukMu*3@jKIZpQ2H%)yWxDvrE7HxfH*or ze$*Ge^irq}$5x^)H>Z*KhT6dC%JS=edBO6=(a~W5w4pf;b%X*o{Q&-bz&V$byw$$f zzd1%AB(}Q0)5z8<>{dI%U# zP>elP9b)pV-oZC?qfRejVVhAW%Q>8$0>-U^bB^lD+~JqB$@W^z9saeVXG1DimYGW= z+d30qSGO0XOVU4RCGvKbCE0TQR)K@F@98hh{U8s5lWT$!BGd9^q9&n~R#4AlAy1ovS}!={%(y&$hEV!K7GG9D5kEr|)XR7%oPsJK zHLvHPSC4B}A#5%R}L0Lqai> zN|z3EO3M0mi?asX!j7P{YN@&g863p#hQz^EHrbJs0`u%H7GYLK2ug@O`4$g_vnK^``7sZLlM#Yq zt-PgdsA6wNP=3wBDq&CL5NsBk0+$Z=@!#5|6yE6kRNoxX*_Yom%SeCLV@;($?*bv5 z>gmsmJ^)*@4?zk~ye~ZI^ykbS5|#5D@%R{t&T0z;vhH@LuoKwVM~xGQR1U0_r}L|` z>jUF(aQxQ#@HV_L7cR?Wj%HAlA&4b}&f+bj*Bn0hUtn&V4OyZC<%ZSAlf0s?4e#Mny)bN*w#1l7~; zh7u*u?l_RzgK$mh*&Tg_#!2~4$6%u+F%1_T%)GNZ`b5%nMj|zdXvXOs%C$37%Gm=% z&nScvrBa^)jr`|z;4da8VY6zvFBdom3oROMhuP{r5sk(1$zpuG6j4GQa);X&$6hJz zab-ZSly##7GU2;>M#uBppad~!Yv)2BsSJf-s0pcK)S)e@hTz^_i?UK^!b|W$}2!vkS z$@4=*PgvdpJ;}aBAI5^OFG`Lg0qmXQN2GiW%90m#=7`AEm#)nJPk+clm=^l$seP%V zEBN_pYyCOkQm9FmH+?CoO?e>ZoV2w`{wXRGFl3q7b}c@MQ&hxLg~T?p3{_51Idu$A zWbdcjbow_nN4NCjRUiHGm?ZikIMuDso9Y$>BRlc!eKR5PEf9yiG`P=@2OQL0w`77! z`hm-Rd&MO@@^$ZesMgz3lQ*0cKi^&#e#^r-xZc%m&g3IZ<$?GgcBXdFK{B6o8rk}Q zU4EyZ{93+1#RvP%V*3Wk*R4SearzsqN4ZCsk;GQ={lS0b2 zkpi@b0%XoJ`bwwx%#mLyQmH>REgoQLksXA(AKC?mlz+p6;6jK5B_tgBcOD8C9+FUu zkn&C`n)+kP_IH}7yMEAKEZ7s?T=o@8Tif3@Uy`+!o~=^izY`4FE!N57zwKt2h?()M z`-H3*vita*zrT{@L^gUy3StChtDV4u;KZAtgoyWL5ETEOgQ)P-y5MpaOnFKPFctQ&y_E8wuW}uWLI|ZoB>X)* z6i&i9emMJnA7`PIW=GY1KQA}@=c{~~#bC0y@n1ZY0B(frF8-8fE*7w_NAplP86ha) zyNhdiSS5BBk@8zLz6Q1Kn){^iR7F=nz zOzo1;%QU}N@)Z`p$zs}fc_;x)3-L;R#zWz}5~5g$0REnb5`c?W9k@A9v;KW%dL@!l zycxnhN;>P$Z-b`#tiPTj@$ig%7d`S+zROJz7^$A`vJ^Nh^IeXBC!OyS7#CI9FY4Oc zpxCRC3!}oIcmfs0;J_f}=E6KvkTx0}#~hU5sJ68>G%ONV#9nPH!o40i+RwPyJ(Al% zNm@yT9`y43nBeJ=Y{M^!--~$442_l49#Edr42@F?jgvAoPR2&baM4f6%g{JQ1{Kv| zcWLV5*0_)m+Oe14_eEyJlrCJ6!D#!66%~M{ygT)$=EwPk@T9bj7eOO`+6MmOq-`9J zX#>>|)5CT9&(>#&_$-cJAcmVA6vj^}ivu~x?f>AXl*O?wpjXP`P(qu?hMUFFxf{bv z`abG1_pWqh-MeC6#G{iP#1aDG_TcT-=h=x5T|(#vNe8r|Zc-DNdRB)+LtD$>nig!_ z7o9T#2Vsd@TzcUCpOJdvuspet(n9zKN62}}qI?6=VR&nc5{EoNqkIFUK%!J7-(ZzAep0DXy1~$J_`Uas**i4C#5H^Uon~hgymjVe z6u6Xtdq0rAx7mjkbvHh%UUWXhB2761{gBv7C*)ibT?Qu*Him~b_Vy2t4%CLh4{0|* z1&H*4{=uPUeV{$s+=kcZG~}T={wB^*H__p%Bmcb~Yexshx4M8&7VtC=WSmf`%zy>Phble5dZ#J%dzMn!q2ymfyHsq@=ySmvv??+JP;Ir2u28noB}lRTngvsu>65M43J`9Gn^`|3fN&u~up19$l7wJC9!dZ%ej#wu9u8;0gbKmr zr#(on+XgCEvxg{(lURgVMM0W9B<Q#4;S*VN~Ar=A=oT7 z1upG_@ZZ{L58g$do%V1*V1&VMLU*zv5!ySsnkAHpU?E#7_lhqZ?j5d;Y#y&|uJ_hj z?OtmP74iu?FlaY@*c_?~JJ5cfpSV-KpSOe!PGxN1>7k}J@IC>KZS@VjPXOuU2HqX; zq&M)gVi;=2Za)?qV~bA3C?M8*E3M_hi_P7lTP*sAO*rXnCtGq5)JQhr*l)B*e=%63 zlYNpU@uzUCa+~c7)E&4&wDa+ijOblIIeU z)T%D|TOtI)yyHi<+pe`y$BH_$hX#*2aze~VQ}=XsY}Pjo4Ni1+7#e)$1WMT100=s8 z2as(Z60uwy|6CA6Lv0)gJ4^?|e@o%NW#@_hY5NW(gNwx)+jrj%=#{qb)MQ9xF13C4 zEfHVG5S1#PCR)1T^yBgRAGj@M6lQty8=NIE(yk4S;K>uRU5g5xGkOtln&K)PS>!BY zvxC&QOKr@VrUqWthFWl)-@1zj>SJx#vFnSTBdek%kZ7Pbf+tsO#2bpB2y{@1!IKg< zJx6;%rp-yk%NcFvk*37WJS7}?Vn>^K${v`qWY2>9&AfFmWVxAlB0h=DJn>XzGf$#a zWi#(slGgf#-eyBT-dq>8GPP$QPTi_yK_Qa0kM^OFx0 zIgB@&1lO=6$c|iG1?>W3((mL!aB(Ms5)vQzFb{=`DM%;=?c{|J=+*j{(DHXp#Luy? zO)ss`(s?go3*4o%;C6*2^JfI-995Eeh^M5DZJSMm%wWgsM9+qh?rQ2`uav^Q$zUCY zrdDEVzS1QA8B5}9IsLI1Q&36m?|BfMoD!4}Ii2-U&eLLbx`a|ePM^ZUHrYA@1TS#Zc2u794MmZr_5AG)b`<=#EgKN z9%(9|_FS0x)dOk+Ksgyuy8xbaKrO=!QSmf&o~7U6U4{$$#vQOwQeFnEwq8J*DkPk? z?f7U594|HsXC=ZV%cyOmAz1NVG^*lj=uOMR7KInp8=Wx%=R}GxTX0?&oYshkhRM;j zaB)9A&>nA^P2fT~STf^R#tCb!Bv?0%BhdDv6+GRNn9Gv*`ABCO3LK;MQymI?O`&nB zJ7KX=GFV0XWJWo zCItqKH<}~Y7s8ang4aPKe^?NIF(VjoRAL{71xw}LJlI>p+&?`mjl)NTlk&4!hYS&AK&*T)BJWq6mJZjMVRB~U%-IB8l8}%;I z5#r!hp-YnF_~Zr#;L76;SF`e~j*Rg9p(qzAfgM5bDxz`=Yve3Nxs;kVd0_K7Kg#uE z7_y9VJ%CRl$|atvM7bnNRia$0$y&+cs1iBr{`+4udd-e>&4~M7Ge?~l>$=HyV^YMV zj`P#j2Wsv5W=L08nd+D<0hhDl|Mf)8S{q{OeQ=Oy+s-=OkDJ8G$))JnpOfLujO$yo1{V!-Mo zf)bL+_c9&|Cl3X1c|8w>lLvz0&*T#mPAizVv0zFweX`RzB}%sYmN&WWuT4~xmi#Sf z$)!L5SkwG2NkLf5nDdmTnx{TiI$gieH2y40<7_lOEru2pJ^eZlf|E&t5;DKO&qLv4 zQbI}VD3Mr-D!$tv?00Hue#wr&GW$$Q=2pvLfnFZ9}f$QOn#xyd2sE`nhl7L2x>Q zpoGZwjXV@i9wZdghUi7Lq-cf>fzON##80pzFu7aIh9Hy*JHsE9oC=}gS6K{L{XkGc zY{-A}P&j!gfXjnC6iyxpN{|it0}CdU>633mBo4NM$+jT{=GnqqO8XfECB%m8!$aY0 zNC8|9<)LsgLQukO$TN6YC2WWsg3V%6;L%_E6Tw1ibZSpGTn~eG(;Cd75--#VbbjJa_5QlEC!Go(cIH58J8*NNaXRjId>wAz zvci3-9roWr1hx7O`=vlTxx@a?@T7OxRah@IPPNCb?pVwSoEk+dDozRL{4Yg)!Ffp+ zt;E(9iwB56zOGr31M!xwgnX)n>qTy9&xmfCX?XY5!hlwrq8b^?1u zwkpWqvAPkNbkh#_4?c+}I&Pbg&iEM* zg_9A25*~l~JrAoy{6!AIX0a)7X=B2FYsX)_K9?PT+1r0&Na8m6<1TKQ)9#<-Tn!VU zLTYnr%>6fE4}cjDh%Oq!vkCA- ziTXwIvh?0)O${Ipw?^?`0JwKu6jLEcT zvCwYm$-zoNN2s0v%W4qHb%YrRW%~4&?s%?o9EyxZb;mmy?>b#D6>3m>1Cpq?Zobka zJg*Q5spjK_*l0~9Q44e*fEJ9~016SJio4FiOU4v(;c!klMVL?o4! zT*layAMA?z;zC$by+<1wiF%Liqi$mZ6!Z;VPf-iS{xc?Zw~2GJ`c?g@EjEn}zyDDN0O@bYUS{+qoSW@}+} zNuTYhB=dc7d|?i;@Y91OT}Q;Hah{;ol0|dWeTF#6r8ayn6sMh+h%IVwLpLi;4#&Nq zW`?`rLA1@^FB$?vu(94H)%u_;UxS=57?uh-n+tPQ+LVmLAnsj&gDIZbQX+UM5&xV( z9C&4mI=(jh$`$o_iX2Mm=ogxc_c^`tBP5akt{7qVr>4lq?}Cp-E<%{d{{TJ@5_w4` zYj(#w?FclI0nSLT)K6SH^t`%k#}zR9Ka#xtpVD&-+6E%K|0GRKY-y(-x$~t`RKawJtIK>VQv)@kqr&jOQmh)#<85Mq`P)ly^6@Q3k27 zR4teNjk=}nog>TsC#>qM_(t5AN82p7=)Vd`$t`;ERAGz0!0=B5C)RXnY(i0n!HxsN zu#onR{<}D4kznxO$>_yXsnLJz#W*?S=u0OT9D0^K>}_qWT|2oxJXUW;-D3PubQxJ` z1Is2l`&ln~Q%#-B0WrXR8apI|WUfJaN~$wRZIQJN)_(r-bB{f+UB9^97cCXTT)Mg^ zIu@Pb{?^du{?=G+0P+ixPokx(S3`mYmPnvwmW9@cIlbu1k`TyrMvS%wBoJM%u zL{yPI+RguE0;zNRr0?brw#K&g4+7VZP{;k@AN>s>1HEJ0`XEUPRwWn@8r@_|LT}Qx z*Vi`1NwwR5SF##eXbX}u9qwz*sfD-NoU)1D-MFW5uca+iT>4H}?`kr}J7YI)>cMWF z0ZW(M^NSwRJ~>0;%1gaNip$1qSN3li9ULF7w~kO`Jwh-xVUv%=6Y7xHcwa!oAFb8H zbaiC>bCAuF(b~qG_(2E)2)Hs-y9!1i{(SXB{IL27tcEx}M)3?d`3OyjkYMX6C)D7$ z)IK=vV_Tn?_kHI(1>*^Mv^*>EUkj5%YsB*t4KkNHH5L;mIAUOV9-Xz520nfa&O1~S zC_WXTN+Dfn57rpk>CVucNfXcA1sE>^JoCo39WIrlHH*-2|5YBd_)pLm=VuxMWcfIWlo&ycY~A76P$1KA~{Ni*caGDBchluoV? zZPth3um-V#Fgo6h)ak_V<>*L6I zB-4{aEV3AU6Rt(;7uU9o!QtrOBuUOhLoJ9QZWlSDw$u| z6RqfpmiI(QA-U7Y+#^8(Yin6?)k%@h!6Mo+FzWA~NeXn0H2GAZXz|-)W?U8K*Y8@J4u?%j7J) z|CUH_=guec!dr1xEx_+fboJas2&F1c{?^lYUzXhb@kyG1@e=IDO{U+M7gHgDMpp8o z^yeteq+E60{2ck6Y`&ex0l2!rE!w%Ayc+{30mn{Z?=`osHGYStz9mC7?_;oq7^F^%$(aj>RB^P9bvr z9v%uO*DNPs6VyXoLUGM%91@98hNs0@wF*}9=&eov`NR5#^!pdHK#XT zped{E#bRXHpPF`|XqM~%^lj#YpbC;%vbf!0__2~a7OI&kgD)wAB>_mguog@%W$?9S zz`h0=aV~;M+;}T|?AtKPNI~wv=Vgi8*}f-I-Y-6C>3&xkG()M2-YLoM4z{QIu`*z9 zhDK9G-CHV9H_l4P{8||-C2`RsHZ#cat*JTS_f!VC=bNWxX+kXlZmVo(I5CS*iIKw! z{FJh^P_1(@D*TkPA&(NDPD(c9|2g!^R(J@XEYKgZQMd(K1jNN{!3?)0>t{{+uG?*< z@`I!Vxw+7Yn*|2x5uZsWy_E$?bK82Sv0GXQJ7U2>*eIL@JDCg+y2fKtVXoNU=`kJ~ zJjM#D+kqaW#GetsWfF*|2YgC%5vf~9Ab4d!8I#JbR3U!85oJuOMTEamx3rE-#w1!# znR7S_NXd*z@l-13Q0!7v%{e@t7FPZA|7CVrl2j*|4U)MsQ!py*ww#pPIUq1I_EoL` z7Ms>DXkX=Or;)8)*?kp+$ITOGU*+-yQs?d`!@i0ZE;pxe7e~aEdzX5zRqRa(ab(ED zW&^+9q6r({h~2pRE!$HvZRVL{Dt`A1Sp9lCo6>09=UCLuh=XNa^0pDCG8*?87&7Nw zD9NX2oS&xC6phY5r2yT08OUslGzk5etsNM&T^5*GV{@ zV(Y0hg2!lDyn=B?W<7=K)f;gT8Rf?n@wh;EW&E?n#GDNR?q9ynciS#_h+$evT|vI^mG(?vO#R3~;_ z0_h39ta8L4owl}1>I<2^mU^#k-K`06iZ81)VdGC>H#JcMb;sKL#~kda1V@}^E}japtY8t&@*SP<;t*8I)#oA9Z9dTNUgQ5 z0eVzlYyA~^k!!6T?#NnexkF{vTF$4&T1!nGaKNu684Ou#-Kf@Dku71ifU6vc2rKgj zBdA1b8|5zYH2a<|c`}YX(QH%{C`6mEmIZE)hvU`8+e5=cFM)gEu_=678ydl~SNZ}L zZbKuRpe`DJ65ZLPmIB8Wv~EPZdx?kIGM`eNwX$&1XLIo5XpH&iL$vK$r>HG=~O)aWD;h(KRJM8gtJM&5C!8*$+SDNd*beivm8S zH70VSkO1+^MOtGj_26GFx{8w4n99ug8+FGQ!ce(2CjKthm~X}>vBnfn)3?SvcC1;a z)WkB&%R}>uqICBaR+gL6D@)yPsnRIjy!Xt60FT3p^Jd_?X`h2O@;>D>vW+^s;zW4d zDXK?x}>`3Db$D=m>wCZ}X- zx6j%$+n%JRK{2g#?lN5FyjECb?+oKg@ylN_bufzpTXjNE()p&4d*qZ%tze;)CREju zDKDM;B~vG{7=+L%M6S=_p>T4|a>GtU9bln^a$~AWro2q?mrPy6A`-w9+ilFygoy&Q zzc%SaCbfYjQ{NZLGFuhkw|2>t*KXL+#6wbr-rAtK-i&|c(Pj8N+T6X3rJ#voAq{r0 zTRY_+Z3PwgW*9iP?odt+#S#4^o~AhBKAdZtk*=W;NQDsJ3j$X?g!nlis0<-~1)jX= z8m7mjqKEr(xEO&${+n!W@HE{47 zM1-<&HuC}k3bmQ9G_@ZrL~RP?`~(|?hjJdTnySAR!i8$8{sfIYHC6c9T2iK+FuUl7 zt*P4eKkVMJZ5PTk)l}^ajW`8t+KYm5sd#tj+l)S;M)F3VBzY`UGi$1rmBEq#-)?yV2>_9-1uPlxIj(Sv*7cx#Lcd$I;#wtq14T;soGcuY(F##72TrL9jrjz z%$ll~l)+LG*R83-x2ERs)l_-D38<-ZTV;F8iDiT=J{S(i3jCB}!l>4{uoiwwiD*9( zpXP5W1nl?xTOrbu1-c0vgu34)W&#FkJ z%(l()@NF9fro#5kncTWi^-sBhVZj1)uckIN@EG8@X&Zw!YL0Un*>j8Cs6lw#v{5k( z+NfEPKHc9@1PKkml565h@_%>y+D%c(Y-f8FEYCK zc6jne_k7bzMfna1!Oe*Fso4Xuq9XwwD%Fr^-+GlM=#*q>kBkC)C91Nfq;IWu-a}|A zzr!{I=9EiTKTDpRY8-g}Zq4(ls?GXzA$rqt;8WNrd^y0Zx+vDee4$0-?m|N)@B1sz zh|`3|!WgmQ+z4Y~e2e%re_>o;UG{Jx?1&K$Vxw?Iq}Dn}e*ZRC>Ql{!zXy-hw2B2| zm;Aa6m9ICD`4{*hkKH60e+u}N)@4ZMLXr`*E>p8xsXD$9t;>`d@Hc`xi$Bk&(c$lM zUA7#b#JWs8P2ak#4=(r~8i9J?GOMxfyw#ZMyuupn*0j}Dz2+p)MVG)Cop6H$AlK@x zHJhUsiR-1{&)&82bq}P}55s*C{cu@u<`L!4jkte&mH0n#u*UFEt9@>2Gn*=@)u}>s z8uXObft>Z8-1UTB>?w&$FY)H-pJYa!exa3i zBcVg_<(#HrycxT3mvb#y(w}v}{*+7tv54(9&O@hTLCrzHcE@=DoMsxeC~z|RWh~9I zvs_*R?NVuD{xrW158|n_aM5xw%;Tl--?H<>MG*7gB{+u!B_ti{tvnPi9ZEtm(){+c zkIZ!G>-Q$y(963%kNPWbyf3ni2rQ$4k;_?^7@5+&Jd{bog%m1e&juqQbY~kJ%X)jF zvoG(5RymwsiiEv<$+M33*Ctlvz=<5ttuWyrZRdB%9WBc;yk#==hL@Z&_X~`sN|3B~ zngt^)3$js*pR?wp%{k$sVT#c)Rtrpv-;PwqcLUR@wNKb z`Pk;S`Zu#Eu-1&Ac-4TD>vRVTr8J?cT755_{8s;77K0Evg^2f$cqp8Bv)r(){;yal zq1>1%tM6rs-|BCFXKAZXP(qlpD-R`rDIr#WUmgmlKMUZ}!$S$c#XH?+3(cwRO&<%U zw1i186^a8SrEF83YyCoGWCM#Z8~-8e_sBeb^K)m`DrL~&Nt1OW59N>0MQU;VFua7t zbpabY#zWy`grLlyZ{Q-CM*AYJpj^hodMb2eVbpm_YkX{MwAt=&ZK*Ze;(F57#Fe;{ zF%P~?5Vcus3S8P7{F37I+ZS9tPfPUyI`%9rp|c&T8wktLym(xA@PQiLWXOQOcr zL`85rcTL>&F7|F{nNDdF#@$n>6W~%RdB^)Yx=~ynv7}G3eHi}jwAB;&Qmhe!S!URc>LcM;Z#LWJrCT!D>8KqF7l7QVK29Mh)G zs$}ZyC`h7QMEXlJ@nokzI~eLt7%JOZC&rfjsp(l1Onr#|3Hmm(&{1J}vmGRXEMzmw zwrXXtBmj8?W~<^ZECYC?0D0r{;Nt>?TP^r}(#d;e87u?IE8;e!hnz^!Tgrfa6ExzI zWK7vDO5C?qAZ~V5+(*iw8A@G@_9*Jwk)O|(0sGl0r0$&+sGC_8cV8JSJ*p?0eGgTD zkf(cgP4+d^RtoVl{exEde=aki|Aj_VHEsR^eV5irSy#yI`bFDNW?L)t1j(>T#=7N> z_|~+!zH&#;H!Djy7@ALRm)Wba#FvG;mUH-opB^kdjAi1}T;J+CW9umDK4VN=Mmy~I zSbmR6wv1pCZhT991hT-Q4UKxM4lnAEvC?Wc$HmpQt!UF|v#T+BQFKuqlCp<~DJ@K# z#d-ufWU%fTX~9QZ#F?wo+4K5h)}9v41?!zA@3DmhguJq6KqHS=hObQt@oWiMj!I{q zqN7s2`h_0hSx&D(B7C|SVfLq0?AvH$T83;kHy3c#Bh?CQJ`k%d4;eerfk4Q;Y`^b zS#qvGn8yFym*7O)|}Z;ou=w@X82kkYCmi97El8uCZl^Z%y6hN6x5BQeShVX8>XdlDYYNu zZv;16frjKx9mn5gxzw$Ilq{DLPnFB1c${hYk9^7&OS@6G3@q z;eHXvd=ox>DH*+ZDmD6#y%-gT+#YPaRcUQ$P%Lnt)R$8n<+ot{-T? zZ6a%G?fT}?=C-I?3?7!kkyXgGY@)M|^`h5q=Tvivp+RwUGQ8XD;dM7Yt6p@*?4G*C zt&=^`NNr2Kwd&ZB(RQ?XXls3Bbx(AtypXa7Z#WqruCKzZou25z@!BwcOnr9k8H-PLaMtG$yjJhoQg}huQlQSmSE;Ds=B9fuQe-G zGR>W^xuvNRKZf1NqN@A!VBFEl+OCDpYdx3+U$&*dW+;DGvVSm-CWG1dc+C-|(U$oZrh@!N6JdXr2-&%7OQ0R+@+r>Y!NhxsZ;g@emeL*WsI$IU)baeHv3X`m zY@S{Po4KU+TpaB8i#o~Qdc0?q9PepW#=F4K&hD7gzb)!m@ATM*N{+o=W$Zg!#>5@H z@7F~g=dH%z6(upav_(2GH2)HsE?vF46@#m{2 z;)m5wu$XGx(O8mr24Ho*N4`c#W?L^_{0FBA^nqI>oW;KL!8JO+$9!>FePnz~?>hMB zd?8QW;91V4cE(!qua2--3**i%4g}Ft{MbSr)QNZe3b-ZGcX4tT=Hf4g)9yGd@!Va2 zH`|YGo9N6N+jh8gdM$Sfmz;kESU{Z}pfApT8$7m_;JZP)&Rh@%RAV3(5{fUGxqJSyvX3OD>OE%57n%m zje=!>=$S-bcbDY#(UZpO`N`Z71^JTW@qvgVxbX?0v(+EUiOjq-Tm6~l8nCGB^7@$L zPd)97^&9%nTzB?~>(*?Doa0gK#Y0qU!-8q!c)JeE?ZcF!>_tWCEVp~@Zk^S)8h6O* zdx<@SRL7txx*NtS$OTNRAm_C;`qp-J`FhfhL1il^yQkISEP z`kFJ&KD(GpdI+l`lO8Lm$vqu4Y4qu+%K7$BAoIo>E%obx;HK2ulZg+)pOLifykSPD zOao<)+FY=7Xk=it*(~UEZc4B$tU5PB(?HeP=Am$^lc0pC&R6nKIHyxW0Wq@3s09gs zHwDR718yh{-7E4pwG_oQ?88-`{{%0qtIzC-BUR`-07_bg8dFB8(Rad!N{y=Vf*L&) zhhD|YR2@`MqaT4WNHzLVd=hF@JWZb(J+k<^{vcL~Qhyax=psjjCOtX|bguaWx(w=X zE%RR^rYoKmQJ!B)+IBiKLU}6mU}#ch9*R#wWs0ZiQ<={^^Ncgj?myw24gJL((8GD% z>2zE{iSFkr(Nx!tHr>_5O700l3@i16o*Zj{C+6fRqF;|o+IFs;8TvIvB9D){`_i#d zsGWikcT~bveQtttVU2q>G!4|agFF;Y;}Vn*joaj*a2i)a0gdaUrj{=J%#dl>EQU_lRz|xLudR8fA{6_d*DPuKyP{zk1B31lX)j|ZI_I)W9dUMor2F;QpPAj{GGTRr))DF$`eOSn*p|es=@@|C_gWyh=!>kibg^?*e zGIt3BKO+5Lal9uC%T0mF<7cjo7N;;jD0puZ*hDj(%;lAB``o|7ifhtzsWUhw?tZ4` z(}`2Vrvn2l0DGEt4j)etd<@dxFJv)f^*2EYIcl}RL*eFg0bI87P&fybpm@c@Jwfww z7K|y?+~iFi=9_=iY7p0R=c77p&_BVZI9sywG~3V7*3(F@Lyh!xOo3Y*>p@EEsIiMb z3M!?tPanS@m?_=%kHS+*6?C-8CU?EFR|W>gX@bfa0|Fl>OIA9hqB>AsnWlh|>%iQi z`~^f%6mZ>%Pr`*4PnBJGdnBgZBLgW_L*<;Z!_O{1yC)g_y~*gsQ>oEUO8MDgHviA8 zwHr(cno~xUZtE;Kij<+X)4e@jMK*RYdQwZ#egTX&g8)Hh?DtM1+tXmp7{V*C40$Ml z)VXQ~EkjTY)e59SIoiCh+r+o&*xlgD(KKb^x!8?djp*gj?rCvV3nSl8+6!BhGbk=0 z(?2M^M0&!MrS-5x$oA5^p`Gi~o4Q(MuVPu+LE_uTqbzN0No<~71)HSYOcWF7f?^ABH7$ZKDmmWgR~fHWX6B4J{aa>PTD#=f$Eu9oDKT?K@B5W0OY4-x;EF037^P;; z=-pp3%F=EuIqG**8Ff-_=8V~X4>F!EOS`?~ct2HTyiSRkGiu+jOj+8uOJeZN!Wd-x zzUfGY*91*@S=yd}lYdR6$CFx9Jpj&4$u*TKOGCJFK{e|e@PvP=vNU{F8y(6+0ITy; z@~FH^q;C6&>Pak1n*+nM{7iH4A5xaKD|P^zst`eP%F=dsx^}#%LS<-qXQC`k@X=eAHY43$kRxQMr!OzFxfjqdR6rt|(i)AKxzYnpXquKT_j{II zyTg~Ch+s!jR|A`>No{nmr{oX6PF3g4IlVnmLo4tWWBiI4joZ|DA#})`ap=ze>E&ap zb0@{ctxKZm>%P{)aVaYt{AS#?q;2QT(-Rm7Adpy-+rb-EvesWBq44SiXW!-}8+PeH z)6{ODzx?m*JQQyCfS`oz27Zu-!tEYND4>>&^TWP z_wsUoefO`HR>WB3a3#CN{B{1 zh=;;yR0#z%YC=M-Nb$E)id0KayaV>(D$++mx~ePE?1>`v=LrDXuRopgz%}rpQk!bL zpf-O+bHKY?4k-^*9jFOdLT#>xp-Hv50iT506i?HqHjhq9%?hf{L+xY?j}w*j?CjMk z?^_X)^IrGi`*l>PQRPHFtMNw9ge^dPb0*lzf>)(ON!!l9%oumoptMJwT6J#WD)r?F zriGoN__(lg;S{nB}AoO&qLuL9$Vu2%U8BvtEe0Liafjp?J(u0IVQEA^_z4eE6hqEN*vRUIg;VAClY3n1K5A40W1SLeF?!iOh6sm** z3e_N@79;$%lseTi6#pLkaMkG#;AM4n%1s)nOqT;?{K_<$G)k4OfKQbwRbvKKdOwk% zw5O^%P*bslDqRCZld5zrJ_%JSo~BQgu5#<^3hLCOavfF|Kn1_`K%a6=)y+9tHeKsP z>Nfp@o-pSDf6NJE&v)LLeL>Q;^Ol*TcT;5YC}3F-*AL}|{Uyo^#}d2?YvN&O8mNgc zyL(8NA!Y6-*7ObN5q3FF~v@rp0NK3tW&0bW*D$w5<1>gM+Y zK)-HI&oHH=KLBl%l2%xNl722CRK?#_9aK=#pN26=C4Db9HqQMdI)AvH2Rw8ttC7Ug14e|Q;UKRmRtw|{ta zpf=o#h|2m!&kxg4ulOC3TqSrx@zozXjchB!##a$ufkfeZ5=fovrpG3=e3hlh#$F{S zDq~nD>CV$Xfl&vQs$XbD`nv=*pV{F}wI)maTkJ;YQln<^c~d01vXs`yZQWA?vS$)~ zsq;hUsV`N!vVNgyGVdPSxHy6}8|qnVrinpS{3p=Av!Pwe4*RPj7x5rCJ4{eQ?C?Q6 z6wVGyC`MJJTUm#0pua%U{ZbS5Xm&g%Nv-^+yjsc1HF%gRW!6$scAKiDTrT)pObT)x z5>ZRJo#@$+s^%ho$h^%t^K&rUagt{7Zw7X|voxxs_r#F?Ok zi1St+3MbAIiXqNjP{I$EPSe&e%T6}n73>H~3vh0+Z;pUoE;$uK!|PcLSffc$YR{Q04@;^B>)${5a8u|hQ8@#!I*N*ITj`AxO3*Dq!d4Mz zZnanem;D>G{PD)Moq~mDpHy#S9<$0~M*R)X&8Q~th;$O4w?(y)LG#-r;kkN8+Bgjc zOFptsrgG2lMJ%wTMpyw`wl}V(rcB~E_X_K-Giyz_l(SuLwv>NjzS88|R)~CbXYy8T z6n>LXp}8;(_DYwV zx5TIUk`ZvZ`K=Be_@RQ9r&BokF2Bw!abOWH5(l{2ow|0qQ^ClL%0Yr^*59 zpy8_uId=HjhiJ_DmKy!`_#{Rzo=S~=QV!8rX}b?+*V-V>PzW@JLY;k~GaFd9I&lK) zMUK^Q90IFba0q0cgmom}q@I7V7~L!sDi?lkN4i1k#N12rMqC zuy%!mFrJa1=?`&p2VrOu#m8VbGQ_Q8?2hm33|)rZ*>AKCKQU*R+|d}`VNQ8n^2sn_ z|N20WC$&D<9U7HfAE>%ygew;ZoAC+%RCUSt3|@h_E>kfK{K-Awb>_~f-(X3*ChZk=xK$nL^}O zLc8LHse(y+??RlC_hTyj(1Vi~CeCmb1VV%?=Co_#<1UFOkXfKBpw$pQ%1wEzR`wuK zD{I?MER>aRq#{XHjA0*ZUGg>ps-)2t7T4RJfvZACk-DTTT_Srj?un}PSYAGWH3&HK z7d)E*eF*W2MBJop%6pR=?=pIa4qj@VE)>xJ#c-Aa!n2c4``C?}8gOX1gvw#+ z%icKo6|@W77kNaps*j_Qu&kA!%Sj?)|*WPS5zKso`Gb^o$(-o#^48OJ(%UJ}A$j z^^_r+2OoQ)X6Rp_?2VU*jTR^{}i7J&B`8Z>ReyayWjw_xxWGhhf? zFuNIBFe&iv_t|DCk-x?9y9M}ctAw9Y+#kuydC2%FZNOY5KAn^enD01L;D<_*a4$9r zmxR638!$?FD4&u0L`%Sfg$7GoFFz5);_)IDAYO%7z{>z_y{K8OTvNUgZM`T3?QfL7 z^|H%%z{H62%Xh^mv3Vh$N^M?eFfASh&{T@oVK;6RptqQG%7N-gz$B;rzlg;&dqwzs zXcrg}hPoa3B`yAxT{6^!U(1fiT&fj{3QYC7^3{T`jt@n01pLIE z>WIK0fj)vi9-zmZiU&l1ef4<2eb9@H2Rr~zIq?9~bf{=RZp4E;lw}jZ3bA3UYy_-2 z4*-}IV*#>zUnD?ToxE5;NDtajK0-rQ-m$GX%;}AyM|*Bh80P_a@{s1q)Fx&AqYx!& z{r4C)3Sa+CSyJX6|7AO_yckeKU{`45j|ku|rXQT2l3sNLB z=P6^a6chMA@#&<*1dem)zz>yV;#h1HE)#pEV**kIC=WUN1FZ(mEHqGx2b>m8e#EH| z`FZ|RJV4EDrM&n?6c12J+TSQY94q#$bB-Ony zI%BLoG&)inKDRzHzNL2^{BvHkD#CJ}o=8qM{+pKA`|BTp?0(}z0HV90PuknY%uhV< z=tF3n(^ak2Hog$VyKuO7xHhtRytcXC3qSXsJ~~)eLzw!+(szQynN}evI`TfJk*z}6 z=m^5&l#UY}xgmknxpD?XN0emC@I!@6(mN8o{IL)&lT_0r{tR?;?X2x!y1@TZDW$X$ zQ-hZIfc8smZSKw)5tpOkj3^bI`Sbs)^H+v9jjH^4iW2mTK2Kr?_(gdK;#sri0hTq{ z;iUVaU0^urH#`U~oJ3GU!byMUp>W|O3B?E}iAwkE7?M+Nzw38xHD_xqb4gVwaFkna zzwRn4VdQjlX+@Um;&>+*Qh2h6#6Q~`F@r+)3BDUrx4&Aa_C<;Dq5^3$nJID9RbsSb zsb6TpT**>3TQH9ls0W<~aRLv56HI~Bao52!BKu;=w-AbMWpQ9#1cDM$dVV<%g_Di~xcmzbg_90~5>$Hr4i-!(+e?(5 z=W^UuJGt{ZL_Tg~k!9tB=Jg}@x$;EVpIjR$A9rq zIQbwb^XD75$UEOj?Yj5O|CERIROraUsPmN8_}JKJv)$j?Qfsy^93O4hTN78J9hwK< zCWzWBHieC~Ec>aImaFu#>`HDP%-?tfGj~n?584GfI}84sa|YN$gb7NBgzv>e;iN)B znN*u{7&{u1--R5Y>NaI53=H@dLeb+`99W$}P(p0VX*?9prWC;CTpkK19RwxFrVO!Q zLfJmKHbsu#Ryf%& zpoEy1|KXu<(oq1HU-D2m=^!XUCg!g!m{7J)u8EQ3xAjl9i77DSo_b$t7lfdMn3w~3 zD4dBYfXh)l6iz+}O1OzRj)zsk#K_`Dz{=!4yvF|13JM|MHejPTfAnT-vypTUmSl$Ao3 zh=E;lr~eem=MWAIusE^$hoFSmrwe%~oHP}{mpW#xmQgxIHBcqp8GDuBxucqp8F5R`EHbPo@!gng1juvu&hTiQPH-`WQb zd6Ph={N&JYK(3p=u1$|8Ro8YMG%8uwrcMq;xU#72AHb&=|5PW3;xpt|h(a_>(8Y9E z$g_AWK4#siI4LKG&i;Yz(OCO9fhUJ9#6Gf44&BuOU}sSlJ2`YG=*vxiG=+`G zv8kVY(osj zDzXIe@`WHri{rHkq#1EWMILL@r&aF72%1!O%olpqR8Q#OuiD^hBs2}Mg#9!n83KoA$d*h*tgQHt& zLn9M$?yZX! zZ;bjh-iS|**;)XD%Hu2v!MuP^NeGalg@hnG27vNHRsU*&D+2P3sOn#7b$_GocnM(D zVJ=|8-(}VR8hjE}|Kh1s-Mm<1R6Pao2vunpbqiYqrluE7O|NNLqFTG%9NIYEt}mPD zIA>3p-zA5dRagx@HKRk!^K9tj+;w#yE&lZjJ%e8aR5okHZ8OE+@c#UyZRd5rbn$IfoDj4nLZ%pva2rpch3Bk?J7BA(H;){KR{hsGHL;zHtX|f|kS3q))U0 zpM*~&o~F+yditj3=$8J$p@DWzcdI&qd-} zW8lZDg=j&=q1Bd)?_~A3s51#YY3jbYBz3Q;LfuuBG`dUK$>?oSr(!Rfq8~0v(GOIi z=rcp-2LE`ZtZW!p7l`!+4=i|MnAis!#u3WCgagH{jnW)MHF-6s`emD=)9&1^)xf zj)%atj-LWg?pn(5P1MHVp8oM08-dE{06Vvi#K^nEa+0W4u4zIBN1g7$mC_I)eS~9= zXNNYoMHdaV8`0L<@DLb!c$Mt-m20f!eK873* zUj9Z=*O|2@oV41mH(OF+gSTY7(u6y*5aDQ>=x}VrZWHYf8!Yyb2Ho)?sduq;vGQVc z{?rX$;u%+jQg8$k&K+N~@f(Gm{6ph)N+G=HH1Ct3k^eMr{Kb?nb(*(3Og#X%MYh>U zBoZ=z!~l5VJs8Lc0&=|gG?%DHS&k`Ecg=XK4U-Z>&yfrPY#MEt7;uj+|d_5GmZ4mX}H0jhoB5`=L zX)i+oBL3rL!2F~SMSkOr#`ud4wStKM`Ap*DFAnh!@Dtw}zaEdz1y7vyi0e_a0jAE_X57e0v~v3Q!k zAn~Da{BiJ}`MykKSRA8lU4|z%_8}QsQHx6+-qmtO)sf8RPC0W<^MOE2b7I)@jE}MH zm$dD?dV1oHY0N!)WuoR;+GBf1)V~>ibb^&H>d0<}FNdb!YlduMt>vL`JE8=|yBY2r zcy%@l#hj^yRu}#DEIi+8;H}2QAKpCw)6TKu(mYG;Zc_R z%iD*2*P_wsHxv-Ib)0_z`i=zk!oJe=&@|9j`ga}*r{f5U-&ew`;Eb^I?JOA6L={?r zmOMQsXI)x=eBWg8V$B^vu|>h}JKfJi;mlnDTps12R1k#`QxyKff(aFc$@iTkrEJS$ zj>hqwv}TImh8TI&K~djn&j&a~$qLgR&@|9@I)sP92@^pH@ts!kP&i?dP&~d9{$LuC zYP`~|+XFf{2y z4dRpVp~Tbl`B2NrB;#GE!A{g6`A!t}SHX+2Gee9qN(aCwUsES`OMo&B)_SKmpDqQW zoAO`8k=mBD?Yv>;I8qX6kLpaHmTKEczsq!Wf@EQrsRK;|U8cA5P&m~_P`oaa6SMyy z3&k`{g*>LJG5Z2^`VSTZ)|?R(o9BMt=o>r~&YTs%nz&^_m1|nr#IHk)JQKXAZ#3^GobF?VX*M(s^oCC?USlK|B;rm?RXB zZ-hUXwxJrYbnCbc46N=OW!ppP9Gw8ecby~43M%ht4ScA)BPCnl9c`tFQ`$RH9aQj+ z*2B=GceDYYgm)yKrq4T45hgs`J+!JnAi@OQRq&0xezNE?Bf_M91F=^QGrrP}(H5Y$ zDf~qoqoJhjOo}iGls#&*oL}_v1joXD(IwC{&@Xxe4~0`}1SP~Tx}Jp+Y9dnyoK*FT z3ef3h76aCl5tI=p&YjIh57ev#KlmVG*ok@Ad_A3^Y~ciJ^N4~TBce-YQ{1xeeP6f=@YdsJto z%%rgd*TOE+FfN@@F<<0)y?6JLNBd8T_&PwD3@WmsYQDKriA zl>W#=;e?5xgm_A`f5vI`09-tt5`s4^MKxaO*6{}DxVop5Z5^enbO4aVb(JiesC=aZ z;X~ysDcJ&F>A8e{XBm0qTcHDkFmmm44YuY0Y~Df0~!1jo$3P_?B%E-9{v*<^dKb{ z45hyo(52cb$fEMfKlm z4lAw1H==4rrE&d@y5l(yf}Up%PRHM+i`;`x!bKKO)8`@|j&?Hth|t78K7h$Sqpm7A z$NQS5NqBg2XmDc`4l?Eb&P_nd+_U6wJyF&HrOP_L$0uz&Z=6|AGGGPp<2l%rfP-+DD-!8YOXBm4JbdvKsmeby`p0omPD)R8LgDcwl&Z z5M5ZjZV1n`5Vr^=KI~+4r3L*uLPFVrAeVNAY7pSbwVEeW<q%BUDi$*u47e06b-RQVn5vc=5AhKAo7cC@r6hfK&qEAC3PE{G6 zF;XYcFM6-|bW%Oz?-#<382aDXD4d~1?ayz5$5h29mZLHqV$_jdhxk$WA&;BH_=f{N zC5ITPScvhwZ%YobQUXe+@r}qKR@&U(s5|~U43%?;@ptJEAM}uNh{aQ7hd5~X>T2MO z;mg(1j^b=Q-i>#I16AY_)66_Nt@c(!kO2kwG{m%mjm`4Ld%`= z^NXCEPn^~&{1jlTxpoLT6=}WG$aW6c?Jb1I&1~hUQl|Pz38d*dcco>XnXkl0E=%r8 zg7FJ&SyRy^_q8T_Bf-nJj_7XO)412VfrH4>xD$LCO_O*tb|VL)kL{;(lGRw{veAC2 z2eLJ1Al$vP{(DZU-|Mk|yX4rvS!L`yTV})^z3;5RyJwa0?rixI z?x=mgf}GfGGzKe6VsK<(46^-N)Tj2P16~s})fZ~V7lZ8k!&Z7csj$@v(5PhCsxe32 zl#Os@%&G=d6~lP-MEo!ayLg6`vpC&Qc?BTvYoSGGEUNbe$RcU=MSWx2`h-{AcRrN4 zoZn-<(6>^ZFXX8k!U=P!ol)?!$q^PSxZ2spfgpN{A6uyR6yq`MKzc4t-EGt9+MfBa zHMtA$M%WZ#TG8OyRNoW4e2VfSF#hb&IN6WUDcp8!_t*YrREJ)&=|rWP$L8-^Cd#qn^2XhF;MkTI8=3@=9tDAGZBJLJMMv@$(Z8d_#{#U z#8au5qEIkZV~U5Kar(Mo4d^{0UTVr-=%<1Lq_eHfz8w9xg8(4apLo`?d?FCjl;tAY z?}Vi7^d1p!V(wLbM-@?iFG#Q|to+V_rh&?DGY^GRegq{%`Hk~XIOQjy2;~Rl(*lF< zO@XnevgsW;%1=v6yaD@gmES6OSzY<1Cxg^|*Ff*C?h{i%slEyLK&d`8K2Uwf;ZU=3 zNkdeh>Y#$^yAj49Ro_kcBvhYxnm*Onv*F~k*M%!Tdz*#Q)oI#_o+_xn-7Oc0dUF)u zj`}r7H2tMz`VL~U;!zPLcw5r8bHxmB0SQsB8eCCC4c?RBRagyv9hwHJ!T;f*aB7gC zgs8z^@=!Q6D4_^72;|cugYQeJK`k%w-Pnh#25*6v)zzSHQbQ6!u>JP}L1qR=n0%K2Q#tYQa60gNRT=jQ2ysWPN(vv|dzgI!;DK8Ku zMybBb;RB`m)c8R49f3ow;svS>DyY5*7=u)O*W!~L`<6}U4#2^A=wrcVVPE$%lLsXn$vZAoB4lqX zoxf(^bzyBUJj2N?lt>oIFkB$ETxC0BmK_3YHfLGT?nSTD$X4d;?ghdtkY{*60%=Cn z|9hlIXcyyL@-8h0GP45?-!xun{kA4S&8PnPT`^6T_yp`m4nk-6?JA~=A%Suzze~3C z{2z2Tf>ZNez>YpUHSZi~m$F>`Q^_~;AUMlKP(m!%I1h!hToQ^wv-!!4r>#KmsZ&nk z#B10An2x@c>#!O(qUJX1o5Z+E~6)%LFQF)v2`@cvZ5x{%Nl#TR_o_qPYsWp3t2sGKot)DLeM$Li0|;IZTSlr zae@*uYj@+JaI>}mF8lFNxLHe3yrSVAr+YXH#*}?dRhKvbB2<%7tqjWG|b-*s?m?IyC5kXNSwgsQWT24GwUdw4-_>Q@tj1-mP$__uf z!tEu==wF(QUObf={iIa59Vpj(8^rOqne}aZ`V#T5jkD4$Qr$MJAwOQVJ5yNOHUSJR zyym>#X;i>mA-n=>&Z`qh(-m&CoB}C2a)no+vh5=YR{rHCSJ|d165ov7q}IGzJd-uA z@k;wtpUoKrSJmbpgkJMLVXE4`!xACe-@XUh<@wMUR>Z2duZwRVkE*s`mc-`aD%d2| zY9d8l2QBRP-m118e`zZpM~`GyD9wU)rKxXKsX1d#|CU+Rwxs0P_o^~>r$Wscz3*41 zs_p3|F*vFU21cctGkW)zjHLtfpt1@1vLd_Yq?^mX( z?b4DMY%7dGwlABGNq9}rlvlNV4m72IjikquS|hy<8kJllsj4=FD;G%b2dc*Sr>bhh zXSIW+JOZ#fuZP!}J6O)Kpp#hD_F+d@3Rkt=iXBk$Hr^nm9hOf!UE9{8SXJ96p)byY z7(BMZ2X{d`9qA3NY7;yYRc(Tg-m11~s;Ke1w;(^rNKZ{0&)@Kxw)>HplFe>S+mG<4 zNvdi4fxyC+6e~6~2cq_{4>-{{-Qx2j&~9@0?5}D2F5(ETdqU`J)rWBys%bM?eUOM$ zp{DJ~b*Gi9mSY4ZiZ3ktor+baQoVB$Ysfs-`nCdnCJv!+v z3oLL_jI4KBYdq~&tTZ*aWzJKQww=y&W;>_pAy$2MSYYR+^^x%{k(|&)a$gQju=K4) z*)5|(plNCcag|zk&RS(??`QB(xZpEE3EBQSk%z(spCuH?eQ^k>MG3z!6;t+{{r}qg z_At4sDqr&G?sO;Vyhs3Jpa?f~gGmPv1)66PUNIqL@<1>^QQdVqRVUR|Z9SR}KL&WC2nNsNRP@6IVeSxD9ob{$e&%_E#(`Boj-` zo{2l=?2W5ew@QR+Wwl6zdP?+*Q2$GC{#5;$;`l_*6l5vuse zzJto}i_q)vu(cvoXBI9(pGO@&5vnJWBJ}4-CPk=hD@5oHYIZXsR2CqoVGI%a3fjO$ z=x^ySCPLX?`%Z)&yJ6Y#)n`SMp@GqaOi9uUYeI+$|7bvwJ}ElQTOrp(y$==hcf9Il z{wQ*ElACwme&RWRBmuf;cTYJrkh5Y)()YOij4Vm#A!|rU+H0=GBuParVI=7X&9#^$ zDX#^R)K5vpO_U^-C{?Uv&!sZ_qVyezhUP_S-6_On=?2v7m8ITUBZcWkq?5u_wid$l z0MYr_4t-fb6T;L&8@MnXqQ96hWq<8EVR{^kZiU&bUUW81Uw>@2FA7R+5&C3lO-RxY z1r(>nWH*e)W(~e7!M+el_M%>|#igzeObZpSMT@&;vCcG8J(hoQ z-4>4GdTsi|foBGW00i`vR)a`&;Yr3S@F`6mE|x3b$621_oN{HX=1UyI%8Z8(!Mz4foj58x552 zlw^%iF~;9E7{qoo8PhDx1US^#JEPzhwSLT2Z(27)Y*@ zkK!+{POjEz8FxE3pygW3tz3PfqHh(VJ+_K23y><9>bYhzHpJXsPaR`1w>#)Brk}IF zn%2*~Ez!A)oOL4RRyyE~&95JGd#l^}Pr9vVf5mEjOJZ&pC$0Qwa17Hxmf<)diuHbGCN2s-g~)AZ8ia3m#kUa-(G>Yiua=-EK5A;Hh? zr=D-W!-mg0^&1U#{S`&uGd#me)*^{#aBh#l)bz77v5E3j?EDJqA^&6hSu_+Yy^V=Q0NMFI#c>b1fUau>8sC z6NNv`X}#Yj2o&qyJ#93D!qt0c1Xv?Xr+E$X;EDix>#X40kpz>Z)jJZt(pQ}}SXHv= zs{I5+ix%`q;!GU=Q|+nQfP4X&Vs1cWU@O(jcOUnIOsp9qu+^FE*Dd1oYZ$v5+6erSFN+R544=tCIWG(1^K|IQUX%W+Zy^ zAiw=n`2(FF6rF+KkM()buC=KmKI>MtiY2)o>5mlEz7vUR;+vBHM461=lstT*`gR64 zNA}uB);zOc$B|d}YL3NR#Y^-u0jx9^>=>3LHsBMp7cDz)b%H12?9yv5)yj00LJ{g( zt0TS;sk4138$8iC!(ljvni~kARiSK3i|y3}3h8xYRsXgY%}Z4(~Fei#1~D zvv_-d$J$#zsjjU>{5HM)7RuJY!pX$Q0P59MGM8Wzjxx{-?$)-%o{!(6f5XF1Q>2+$ zGw_N${^a%7LU+c`w|~}vJd|`1r{qsr(uREdLDCfj*ZS24mv>p3azP2hKn^x4kbQ4> zIj;T?Qy&EP9*s-^+)Ixmac>>1NKCalZ`Dw(@YQE-yWr$ASljC-)j8Roio`)5yeZQG zg*%ywoT7gzCUADfQ*zFim^rbgZ+=m15pqy4>H2Ry)vboq_9f3Dqywt!pWh zaozGPNQcpg1!*f#Tkx4xS7m9KPBr`XNX-`CDgI=LAr^x{J#6t{Oyz@-U=vBqch57` zyT>B+P7KN;lqvk6MBAY}9lAwL2ovsSZ75BiVq;@wR59Y;3XxQdIFYZ#Bi_C)mBokG zq=F)Us&RfJG*z|9_bO!yKh7Vxfacg)#UgeL(EnEQugM3_#%u|4wVWtfWp`24^hz#a zyqaQ{DqQwbf24Za^}8ryMy$CV$Yeb4rhC`T>sAF{x@Me-uQ6}7%2j(B%5KPMlUM_S z)+KtQi%q2I2}@c<6@Mw_B}MS`0S%}^tRi@tSS1oqn;Rg$wl4Qn!9F6tHZ2@Wa>E;( zsh6uAQ-&(}!E&~c5Bg#`4KVkNt)j7Go-y{nO-lgD|N(z+R-bVK@DN5NzD#q_&Iy(H=a{;crN$&~H zN^HWC>M>{C-n4Qp@IO|49y9j2z7hXg1*{*aBS~dsMSVK~BvWk00Tq6o!6J8(VJ-ViL8431a#eb1f!b zh|rgp%(a+!LDUi)#Kagv4fr37)x;j~IU}{}L0oSQ?~YfSXf&z4sr7E?-o#I!^Cq2; z(t5o$fg;lDt>Ix}v?mLmasDu}!+!78{=93O-gMKHixEa@R6`L$7EG1B z?Xam}^nx8Wsy#Ihn@z~nq{D{lxpqFbl zMn0#_Nh?S-Ol0|XYou5h&8Dq%g63GFXq5`NQLB`I9WzBXkZd~PE}*V8q=^!gtXLPC zQ;9c(GiSfmxiALjiw^B|htB3mloK|XG-V3EH$TB0b+&Uz^lr>!^Ro$Rz+$EaT;iI& z8Q+lEo4Cr|o$Izfzpf=LO#a7;HLi-(L9r#@icA4!aC)q7hXcf@*NM}{dMfoq@k_Ps zW?y;r1uU_xFmvC)+EzcQE{mf&Y;Hl>y19Uf5x>KR6UWn0ds-VP!}kFbHfe60`{MLa zR8XrWc(E#0MIXH%u>WD4E{3G+WTuLV zYWWYvv@gb~csDYcmTjGBqtf=5F==aGsxj>)8q>ZVr-z)h*td9`KlD_W7(qt1fHbqo zmEaSGY6Scl>Z_FQYB%4mG#CL&D(q<_-b32cQY@+6&_yGS!h)ydPt~WR{@^84efdTW z73SqlI;$(W`BK-S=5*KjC|KS7t$H=;BU30| zFHxrOysq|o7%2b7?)pd#5C-{c7_H206#|6X+G4VLT!@0So@a`@pO4f#Axb_+nc|Q) zKpF&4{41f`)Wk|C#<}4Hev}Q5c_hW4KO7>d7<8gwq(L`NX5odA8=+u_if)6TX)U}k zat9lnsh2AlMlTGhciao}GP=dRFzl~==Y@G6-@y-Mb5;lk%z_{XjGMQv@5Q-czi>oo z4Lx)XHe!Zr2~YEr#m)O)tj@A6p`YMgl^mA7YZO)htxo-?wxP8WCU94-uYSx!jPgT+&jTk+1u`&gV4xe_l{~$jeF-$&?B34?@+zm zz4Kf8i+)P?&Me>Jta*0i>ItvHyJ$mL&(85HqIq^`#dMuI@iHsn@OyMkHzasnKU|Q?zZuP1T?9dsq_vMHQs!I|rkwHlnlI6V=xRk@_l(RfixG zbEMQ9-k>-75MzlrrPk^hp=YY4{-W#4WS4v9+w)jU&5R~?x-@_xce)cplqz<*l4o7k zz{baW;%S4jU-rug*M@dAHZL*!EJVJaUDk$Q#4r4ZRB-oB;c8G;`NrE!Y44Pt?3vQ$ z;S?qSDe81;dNYdeyc^8`186ii0}Rq%EEtph)r1*9Onlnbe%gDiq3+#OP6rM@7PE-4 z#wB~1M;&(bElCH&=*Ews>}GQ?rth*3IufU6u4@e7YnW;Cz0qG*uO@?dm{(Bz<>Ex8 zWYG!I{=`6`kV~AJ*ifwSt3J}%!7^jX-e#gQuQD>5c~8F8&AZQ!d-|zc8<9D)Hi@|F zqvnO0iaXsNM&Fhz>ezot#rU`7CpWbUNpAexLX&sgxRgXZmz||3laMAuDKQy zFNj(~?bfHi<<-{euilXcyp_9k-W~56-)K^MQ|o-I@78Z;tfgJ;a$wN%C8U?SgQ!EK zk{Xu#TS?+$jbyFg`X$I0QY4*juENBIqLwgI>O6BTCN|`?Xd-Dc=>&{ub$n~=y&_`L zShqf?k$96gBj&v#o7ez(XGz213`6K`#?BgLml)3foT84?I`|Bb*zjisfW! zI8`ivv{EQT{T`!^PC;6?qfsP?IjuLGJ5bN^+522wxz0Rc?-dE2G?G9c&S>+5RTFcb zd>w6SWC$gi3wvKMRra>M@2?>LgYA8)JvH{e5;8Su@1uITz3)|!$)=yu-pB61(>HON z!B6Vt;L!@Qgf;jbwi^3F1ZuNuQ~0*BQcTe?MP^uXZF>#VDUSO?XpVCYF$?z3O&4hS zhUg5|-MxFqPS^hnt7{R}gi*1BG8yAn;@q**@9yS81Z|h)ojc6r!~}6XOXH$Q1Q3?S z!;y(u8Yg=0-J!?2nK3|AdZUUPglzZw%JVMqx)7zo5h2?ru(s7ts>|D`A={^*Y(3(K zi3)$nHYbj!qjf{J*T?ChsGxQ);i=OUvOO55+RGvk);=GJBZO>QNFIl<^+UF=jMK%C zlr@HIJ8>!=LnhPGtTSy?+TIY8wsk|cKOd)uoV0K}ctW=6sV*__zQ%bGkmfzQ^TH>=e%43Q`jU{kA_V#~tSg|tSD@2leRvuQbhVvCS^S4;*)M&inOi2r z`5xA?`bnFa884yihEm5RjfZjllnG+ofHaH3jl80nzl=~k{M`mLtKngDsp8(LgF}=m zoOYxjg>>3YW=R{niQUj{$@%ggDn+ZK|LEn``bVF1N~F;u_#}jXyDDNQq}3=m zQ!iKcjd2sS)#7mzub^8zZi4;QMBIdkMu;0T@d5t*s$^ln#w}K*WVw(`r^+eZ0%s1M z=snXg%T=r z-Ofjk#88B@52RxJkr-!qn;4yUxGP0PV=VL+$e3_FB2R}?g53lwDIaLJHxDloU(WSC zRup-kks|e7Xg$am(j$73xeAj)(#Ftw6Bx)%sFL6n!UvO}vv2P(r>D4_N%}Q@-opgGX#Sx4Z zyi12at=C5yC;`1b(!;{6eZjM+LoSa>I6Y#do8DN{M5^J5LmRBmF@39F3_(y*K;>Bq zw{zNhVz=72${AjL+vFhB8thwDqg&%!{WFxxCVi_^FZZqProZT?^sUbKE>4;rpgCFP zk_*S+yJ!tnGyM7LFCQ*z&bK>R zGt68p>{2ugA$Qt;U`bnI2|n3J4Rcck$DBx+!gI{QMBX6bA+><|2^9HPM{1}rbgT?d ze(F;s@|(wB7&_$454Kt8OEWQzJR~9{cW|aK2Sh693^#O)(qHU=2>WZ_89I)FNux4? z+pgIfVm5Bf_Zc_zoJ|-sKH_Zxnv%>}qgGDegW_9LsobWXGtXMS@tmH;iJp~f&OV?1 z|M0SPYgVpdkIq`R?)-K1Y{j~j8&2@r-Awm(wzJrSK8zNS_|b4aQ4x_u{_@8scEH#+$~D8293$mVckB1wnTRi7GkQ z{jKS7nX!wA+-pDizwz2Lq*V34V z-fd4Kb;6rkU;lI)>jP|E@@l;Pv|bx)pmNu8tDygj$Dc(zgRO$9JvCOr>yW8Qt02|O zt%9#$_-y(qt%5T=3bkellsYe##~nx?))KgIJ#Dt|eOhknqc0s(WJqdcB$pjz$1Yrp zUzntdy?Tz9xDSXw7SEl+mwj5w_Y{d`TExd9G3gB4r90c%7W4y09!4ilCH(xN)=Ph4Nw zbX5vmsD%!N3=gNZG^9&lVu(_OOF*g*!Pb5MvMyW#QiTi7)N7xE`W<8JBcLqAP-O45pS=|Am@!;PS8~=8oYpPlhNu$0Cwc^SBa1Gn%2)IOdHyPu>A|a` zE~#ROGF_SZnQ45%&Mbz(_E??z&RppgSVDmbOGZ+ITT+{?D$}i5;ckLHN`Mbl$OOJB zCTUenH1UGdUMf_IgE+mv*g3FVOyx^CrUEDNMXAmBBtxnCKdZe?Te(n9<*KU=aJpm~ zD~+EO>e2+Kd$3Y0f(%Jf)*5G;e3HxNt?C+Q3Uv4~9P6d3Gb>#ftdz64Qr}RKktkht z+F4+Csd`J5-^=B+7b@kEO1ZiwGh>a@x!KCYXMqo(qNGlA+$xn*!z1`Hl~Z6}QnXUlI0dOfsjNm#f+!bHCU7!k5{ZNqqpXl`76i?&#L@Qr) z=HSb>gX9=s3-+3xt_+VP zT^0mk*@G-5XfdD4QGqkq6UN*${OZw2$*QCa$*sf0QZucsBL!Tbrsrf_GFVQIW=mPl zqBHQp-co7+x5c}y?2uCf(`*_#Q^I6m^9+Sf7s-+oA5Ry}IrHc*R8m5`3T^?w*idO{ z4EfYz>T>rdSacT6FK|wNGZ-%#sU>2qE$=6j=oCV;?;iNk~-3}y6 z5Oh{`%$Zr*mM^EaCNtU1__FZk4ET3)u0X6mja?R!6t{)!z$GH;@(}+0VNTiwgP9cC zgMsJs4OC_%MCvV-5meEQ)|Inm(4WhJF>p^|Fq9VX_b>)+UH zoXn&WcxHION@EId!{}x#d>eesnLCJ7TapOh&E}G+beaS$+PA}*MJ3aam#o|n7i(kA zBph0);?_cE3Ku7szhK2|o`2je$pai2n1=-RzPX1eM|b%C@7?j6+vVLQ_seIoN*d&*_%X8_-aBm89MAB?Eo#i%lQ< zPGohd)iUx-LTl|dKy32-!-Fn)e)Et<9{wEUu}aL8m`yW&>!88ofA`vlqfhpsM3Y=5 zo4Gc#-F|yIp1egcFdvX4IOcf35`u@Ib=iMUa0um`2dFrmR3crd%Cr<#=2#{-mbrF} zl{Uso8e^r5u@c5uZrmkwIJ6pG{WMg+B(ptJV0CA9WbOt3w~L@*sgGpZ_~pRrp3r+; zoy_H>wrmMnA!njzsAmhDt6CnaAYu?kw)I0Q(Hf3mMa&1OH!`)bPZ)J69sug*4&qwy z?&Fy!>|K*Uyl)U(+73t){I~<~GXe{~M%yM})PIKtV}3W_|DZdP&3%+$2|^L$ik1_D ze^=g23zmjOX~vq6FvJ^=U?!9^bgTuSg9!A}TQo&Z=w@J)j65S(-(;535lNq{`T+x>t8P6m_+ zwi5h?;5CB5Qvex)eMrQg#@>s4!D!x)H49f3GP`2c!1!r6@dRi@YK10X9)gv zC15wf(;osnOK{g}z&!--Jr8g=!L&7iSp1bSn-pf{Uww6u}p71$>#{iBAE(L$L66Ko3FX(|{`o z&i)KwHNhY6032{9AVn}laOP(LD+%V`1xOIwLU21l``v)41T*dh%q6({e!%?%k39(Z zD!~O`0$fb+#>0TO2p)YDu#4c={{VP};I^+|;5uP)*jB=pD+v|7M3x`F0^+@ve(6fK zc|lw^iYrcItQIYHD^agUd z14=rTYwsZV5kWiBdX<@dPSqphQ1u8uRjGHiRQ*0Zt)Z%&KyFD;D7?aQ*O;JFK~O5v z{uaS62^tY}wO~_bHG!?BjPKN!t*tnNQ%sCxiZDvx@F95~}%6kCY2+}VCvIHCc9dHrBnZE?ABsk?)fMo>BUjm#%@aH*!eQxCW7wY0_G50N3fIN9fC=(0!9h0 zB>2K>fcptH{SI&$0e#TOrVk$3bk(U%SE1T;Fwdrgdo~5**c7Z|rxybnOirP}CI zow8PzX||_)rh<_3WUjv~@dhp=nCAxz6*9gf%6qVo%W<10Tr?dk#PeHVptL^%1$|Xl z>DuZ#n4H;`Rq91lac`p$clyuHTDdeo^#(1dl#nV>Dlq_G!xp^BTPG(fd06$)1guJx zJglnl^|+c+GexL1r1+(BVE?67z*=ueTSNo&_FSK6jW)OL{Zj zXnAZLTJ|+X%XX#ATzZ6umLo^Hw4^tnW!rdKdsfGx<;tdLsjcI`2k|s{`H7=kTGE^G z#+RGp&@$aBT9Rj1qvcF&C4}8b`h3R|Uv7^>%a1ih%QiK~?*Z{NT7F}ROG|nKzMLF_ zmP2a`rBW77_yh~8fF_={ilm<}#=Y2uL@9$0!X)HT4VI*@YXgF!D5xxv#jP$SSd$QU zkt%NEwxt1UFh$pCXUjdML`jt3>h+nuSKXeE->z4vb^&+98KqB$9i<6!+dP?$G`O}> zZJe$sdB&+9KLyXzoAD-#zY>R=u`n^k%%#a#0*wE^HMopM(!qo8zCo&7~#18E>>aBMvQ3Z51ug{fvi}TkmjbNpHp* zEjPuX<%O-H<*j#lXnD=&U0Twc@kYzhIJ7J^MN4h3KMOGs+8jUPewUW?2DBVkd;Oc^ z(DH_+XsPY>?*Z{NS{@IdkkHlX&3NO>2jbB3?^;Dm-Ju3M^FKZ0(ozO6huEJs;|LNl z^UV~Yc9BoTq2;%lqNTQnyzomNz8pa~li*8w1HSz4y*>_5%(wT%8Kr*Oz6#13}J6uHZba6b%O_iZYdhnzeTcWwh6n{$;Av%nX#5D3G zU*?+LvN*Vi(`ASUONe7n-1w(i_UN2X0oOK@B`~UuZ(wg!RM)!q{x}13OxS@5obeF` zW)+3)QNW;0p=u4ssF|gzrK{bVI85!{94@xyu2KxR#zp;Pt diff --git a/graphdoc/docs/_build/doctrees/graphdoc.data.dspy_data.doctree b/graphdoc/docs/_build/doctrees/graphdoc.data.dspy_data.doctree deleted file mode 100644 index 55deeb98f78cc3a4141fbe237c715235b6268bad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284484 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 diff --git a/graphdoc/docs/_build/doctrees/graphdoc.data.mlflow_data.doctree b/graphdoc/docs/_build/doctrees/graphdoc.data.mlflow_data.doctree deleted file mode 100644 index 2940415c29c31260b3ef1f6a5309a1e5c8777ed8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104843 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
    vEcHFQR` zBxb?x!>tGpN^H01s&C2o6yu2=mTOeMecSy~^^xiiDyBS=+rDpDJc}pTXG9b9T@Ajw z?l5tH@0D)Ut1=q(MDP^ zkXYuui+7Mimu_yj4eAA&k3L9~pv*@|CB%I68JY@ZJ`z+6^U+a3Yz~U1eSmD1Ia9l9 zTY4DQ`}Q1=S3<5|$~5H_;%1(E#n6Q?^%1i5q&!C|At6w|ps7#*$f6D3 zw$!f^OWfPc)i8M>eNDqd8SJnaebU&$22oCw+bH zlf-898GZf=NhF}pLHo+@&{QZqV_)uuFDM4?pWLd;&iP(xmj0A($9?cR7f;3h8!Y)V zHX1zr51I-kBe1t2GUAUkl>nZG=ypAqQJPS<@Np@}-ENLrR5S!$NRl!qR4!>X z-!T()Ca&zIH*4XtOPgIF7wV&MVU>m~*G9#slo{PH&#EA2obyz3`a+V^>76IJUG z>uD0yOhYOmGi?h^g+iyGVywpddb#XhYm;R)bFU-YWMY7V@p-VLv=-eJ%8Dh%I>?w= z6zeTM(DvRc3l@2>PM5U zr{bGIo%Y|Sr(2kC(_aLY^1JD)d&WP2{&AARNBJ%cLMe1`dp3T^SZF`* zOaf~fwNLGcWV~sK);Qw(7$p%@x3}3mqcQh8jj?fEim!(6i92J!tg}>@bu6nYQ{V=n z5HR>l@Ga`-g@F)jdVdq@wP!OWnq9jgodSH%2xsy~YeTix)UCV#M0bu)-5PHPdNCjN z8`&?0zW7zFp~p$!_A5b#uv;-Fbl9yPrKF3Z-}$KHx0B7TE^I%r3p!wuy~_&3eM>frO6=NB zISAm{L!IvI@ojxkeWFzxt6g6iPI)i5U2E3I2e+0-Cow_h8BuS2D|0lmoT>FjrI&~I zvaFma*R=O$eqy|Yyh%LQO2B_3^rU0h5jj=LZ}U4<_qj6uPFU~e=^soSL+$6;&!!2$ z!6MqDv$t7r{`H4W#gxh!&g|fTrP-D=L2QW+pJ-w)mr#? zmDy!`_?Hd4?7~z`JCRTO}w2!`6?SU2@0x6B?PKB(Nrj? z3Mz%6`gW4?&W7q+_&|k1Rj{HURC@y#(}Zx{*R3d_n|z^>`+1V>>B#;6I75Pv`xTl5 zg z(u0arLefU;eL1=MQ)we|^yP4xN;YcjG^_I+g;&nN#B+_F65WCV$s|Pg^GF}MtZggO zs&hP-0fEP1#djIDqITXy#pjbOC_I6(6BTF7pjFT=$`B!=`tS^lpEEn$iq>9~z1K@Q z45NFHu(JIcRJr_CHeplYhPE+arZBWk!Y}(UjM&*vwG+ENc_`)u*NH@$aPq97-bIbKuAG$NG zhfHqE)lNKQ@)lNUVT{dXTd=I`3ul?z!3b|u;+&Vf7S{=}lo^I;0u*3b9EHYlzadx`OlQFH)h;1>~4=|cPQoRlZK1?xpXFSrQ3Sg@wdfk|k8KqvQK{eJ2Y9G{CI->;wL}&uR`Z0xS3PV$WBrs ztgbM#Ub$6aas89*9vpr(os94gHrWm+!@5VH(=<{oxOgli{p3aaW4VcyL#c3EAGC zN>iaWYJ!Tfy`OEe)4#=6MKmifBwJvvu$EUc>z3c6G9*kV2G;ZVDB4pzYs~Ex%j}jJ zPjevuvSDD|SI9vv>k?R<$x2A1ia#`S$4TajqR2r@&xk|sgn6sd&Z^o=wX3a5gK zfzuv`n|`R8r8GnDB->#QYc8~QA@M}Uru$udL_;wvcvcXzJ^T_Xz8WXcnsGtZeI$F+ z@%neXcX5aT>>p_olmQH>gl9DUF-@z05lS?n;K1xPM*wAHd1EJOu;{(`8cnpMl zNLAM_(fDi4fa6I96c%Ni3U#6+Ls0cWvvODm{cPFs*1_euH$y4LLfxT+vG9+uckRen zcqQ;w7z9+tUZsk9iEuG!-gqQA{eXze?n_Qh$->L)wo~gwnRJ!&(2&!+8mV| zR^09$y`)teh0vNNe^(oCw#wtJ8f>+P(Fnqv?UkrikL30x`=e9_t~|I}=FM=my?o%iifiQ9R1k4lEkm_0U)yq-lY?zb$`W{2f)?QK2OE&VI! z>$WCru6AsuECo6Mr;qZMrWZAJd=ZAb7sSarQL#L1Hg^5c@n6HY;}-*+H^djfzhfqm z;|tj@7BI^ifk(3yyJjpQxCLg4SP$GJeQLvY|*;t$=j zw>e)+$0}n!!urj;W$8sbf%V(r+d;5a?6F|&a>oa2PnokihJ|LS`}rW~w=!6ofIj`z z2Ze%iYk>5hC)7r!=Vv*$(f>cmi)L?3W?#W?N>IBJ^|$8L!@1yxTaxdvO5~R0adUsf zqb_n!aR5&Kin?R}oU3Cz-e5uecmN1+xEK$*JY0K;;flC&grdxPrhB)?OKcgGE(#cK zaoBcamBNQDpJDLO;1+ctoZ7riLDK0!Xb)u(WPHI<-!Gsjjyhvuu2H9@1P19y1B5(W zLs!BG7ij|XS1JkBdrvS+RO`dOte{La7tt*jL8nA?3;)$YbPI-mykF+W$hv21HUzIU zYL({HM!1#hp7zPos)mtB!J#bV=|ktEsj(}&=IOIU@3KxG-btBYMW|n?A_8hWp)~l$ z4!MENGbm`D(#B3iZ%oa=8_)<>nx`AZe#MBnnV;w%o<($@YuQ)4#8nK3jU=A&p&=yd&lL6fmxv`g# z7J_%%FZvxj>IRY#q0?r%j-g-0(PPgIvrW!1FF%)dd?1JKn3t=e8mV&F=JQ@Kk$?+J z_aG6uu>r=tqsWb$ftez5<5u|PkK9No*fLbZcg)M_k`bFBF$z6;1Tf*^f19g&Xp#RsRPrD8VsFe%AE>-1tpnWT?~ZPw`^|Lmt&p-H{w!}|x&UKE(U`;r zE6|v9SHM@%m?ZJ3V30WR^<^{K0T1s<|0mzaGsbDPR?bCs#|_^lRZM>+o5?l?ylltZr{=uuy;MlPS_aVgXT zJ^FjnVZWK@VXS`_I+K+&`Z`Fq!rbyv z*2ly)bT4q8LV8fRRSl?haG+p=Z`AzB`kQ1=$i(DG#hWtRW3j!Nq!h|CH>k8dou?kX zeDo))zk}>u03U7bCEY?LP;8ernP=LCmv9^yLghf;3WcIaOO$z5DJfQ*r&_jrmhO7$ zDXCBK)&G%|!D2UH_N>}0{kZr)toQjZ=nX6I~lIm~G#aZhq^(MX9GoW7JLU#a7 zf&wE_2?68LG!+Vrf{Fn~v3#YwDBR`kM3QzW6sK)@TgJyK6p(@&1p&D?59$Pk(2GZi z+=OJrDnd>EsnK{9$;fmxuH`)p5{(s_1cgSV5`xAiO@%_Epwa;vUq{m3>1e!}k5wod z1vm1bkuGcdUGxSmF0tjr<99hyZfdFRrGLqq$*LGy@TaDCU^ul7)~&zd1LI60zZU!e z*%MNGLn>Y^m?z%U(%{=9l~5ojR`^cSdwTigzvk)}WDi346e4V%qNz~Ah8zuMd)1>c zXbHn?{+O52FJA65!lkofCe54a3g7P1j(?|J5?;8Lmnx*1=?c0B#sSZOwF5 z_MOL#%BBYdb!oV=9=sXlXjsHSmK)o|Ar&z1B8IczYUmK&v8(K53L_aZ)$XURmG2jRU&MD#edxSc_MQEi{uh{y?! z2P>_w$d>~>ta-A!-0ZO0;W8yCH8oOF8l(k_pW6T<8^_ zw+A%&%c=+Ws~+%Qg?ca>?uC~PDSY455>pLPH(f_1-UnD$Bk7V|GSxm({_giya(uG9 zd2kt)Y9f)7^gQneOUL#_!{t_)XDb%j4+bLcOdQ5M7;puX@qCG}0>__TtkZF{PuOt! z;#TFl)blQ4 zSgJl!{egAEo^&yM!(v(^Nt>C>^6@eJ3{7pI~1x?hXLhquH2r7nYlbd4F?d*;{ zXfsLKTt;(wd@}7p55wYTT&8s?Q>ZcX&MWxn*t0C%OfCAKzWS5MJlMYwC9t_)qMSsh z=Z(haEhKZ(`}AtgfgpTN(IhB*B9#z)et@Pz;Zsm4jL*AC$~y(0pXQ?ziciu1Jou!` z+QxS8`mz)5I-UbO@rUQ@7AEXn-+{$Czr9P|b<9W#W7m`H7yDD*bkHnqz!O-f{dJXqKgYng;v!@#Y=J!KCcF zjsM6fi1WR3RhtYA;7?8qY!K(W*!T~O$(!vjSo3jDNXiCsbE2jKh7m5VKxp!R$jdxI>6-yc#vQKNr#o zfq9tQa);`plVjseX{Lew9^97Bww^68;Yg)U8FY6zUA-J1&A4LhXw$K)S-DGZ#E9X4 znhpOIm1`zzjS9N~r8&^EG&&Eq<;|#BAFYgTi(rI@>f>8#jWL$juhJ^lMw`(VxXGQ5 zD_kYMwKmK%PBF0bL+y(yl?gHC21wu&9606i;b=>Fs5Mz0Wo1`iH#9mq%930Laf~o zaqLCg#eWwu3~sAWHcZqi9RBe+#DK?cy3@~s$8LJBp9y+W9A98k#LI+y*@FPsX2xIP z@o7OkDI4?gCM=tPkaCN|1oL5zmBIT1|1?3!)F&XXnbfs;Mqwsp;3NY3L|;_qC*36U z)KKmSQkr2aJ7Cyci(!S0egjgfqV+5)DI?3d^`Y~H*seE}1`q)Q8@0`F6cDU{{dC!W z=i81|P%bASR>5PujY$&V5q8>Kli2X1Mw581$D~Y-32ma;sOq*q`YbTI1@cTp)mWBN zwec?n?HpUG-#&{Q>9U`Is-RDV>>OWBQ=xW_NX1l=(X|h$E$vHd-$qigv{L5%AFeZ@ zGZklL;>fgOFs;~A)uXmUi0#o}w_gnZ90ULK z!aqwka@`$0H}V5g?r65KO6Yu=tK^(7U)PtR4Z{C)Kl{b~PyAOQ?+q7(3&qqaEXYrn zYn^h0`!JLUbZ3y)7s^%0ejmd;4Szj?T1?OUkQVlZl<9n{}rlk`$NxK$!{~mBlHhkHCk>q zuPiq(MANc=i#JSYe)-#JbHjfpHeLu+iwqJ!D4$ zxMnXYX3w3qT1$_3m=X0%&E0RC_Z?2&%$Fv|)9IbUV*D!(h^vw zjZGUjOl%uw7qt!b5Ag-3U%%Wa%&a9Cy;WTxYYhKEzz1{qOebAYmm!p?1^-|lRAES*zLut2bZWG@Lz>` z(3P-TYtyx^0oFutTzG?SkMJtrSjAD`bA;Tk-vkCd(eNI`JxwMF>Wjuk z;b6eEgF@XMhYSAjOZXfvY^yYC%)vL9e92OkT@A8oaI#UuYVZiWL>1OIBS%R{W*nAv zu|UP?k4N4Dc(z1f$U;2sRI=tyMEu=v&NGhBf*lJOtlZK&7|d*A8B=eCSy zJyCtq8zB8CEIj^ZsVL<27lAB!UT)wqH+eGy)P_P(F@j3>PvNXTiGZ)P zX7IygyG#`)m$Bir!V5B)hKmTK{x%bv-t4TK+{wF9LxB%r;I zT}VRQeXK{~_vA>VL;b&a^PIi2AL_GTVXwdrwOL{p)lE~pq#S8jekwjIxS zFG;yDm@_@&1S}UrliV#()>syVrJ>16rBy4dMkY%we)rWF6*VMElP@$*FCv+o-na8P zCxUSLQkn#XQ=}4t(-E2qg;PPr!0A3dPWv(ICUx0HHX{_YiL@9pwIOR*QJFgF8#2GO z_swK4NV_Fc@!H3o3H~0EN+_@LCv+huxR*!%WGHZ++_-U0C&+aD!65ilUOq|TCkc4?DGq`Gmi-?Wg>IQC1Flj7X-M$7YOXeOkp zP``(IfhzW1gN5}Dq!I%B!)PiL@C6k^o^!dwe2{(_?ue!1NXq6w=Tf3M70T^I%z|EM zQn=nB`d<*A3kVZe0;Cemjy+5wHSM*A>t!Ub)2HA?oFPH#$3~h2rG6ll5V&4VQ=#B0 zs1%0lc9QZ=f$KItI?jG1RrHAd7liAf2v;z%*+$m{RuAx$ltA^q(rK0}@QF;is0CPJ&&u6qcH5WUlA5FF*6q*U;S8myO zmZyU2{z7P4LM!uc*-j#RL2AE9#k*zmWTIb1QVQi)V%yeHCVE15^77EXgSd+9SpW}h z@sKqW?b0UW=pBTz?bEVkHkOm3ME$KL$t2z3)Ft~GsF%Q{-%9x!ngq45A(aqGavM#B zk|cskS0u>?$yS&HOzj+|MUvbFO-qcJUy}R{*$Z+OAeB%_@>P;jD8F`?B=PdlFG+q# z_AG#hwroh3Bm%v5X_IkDNkW&kb98vUuZ44TEM@T&lW@X*ne- z0h25}gs{hTF`pksVwv@$3>sw%=@Eq^N9uj@pxz^17?_Sg-a;P5{lWeve@ zv+?srz}kM$3oBZ~oTBa3X8w-i4dE7+O-pnnT)cph#TWrk+l>Y;bQ)-@<@wTk90uQV zttIB1FtB9F;a;ehKfMPB2v6_9LBrE~oLZELX3mdYGj0W@0s|Wrs>1>WF~smRHtZtA za3A)QPoTnQ5|1Aotc}-NgM+0dDF;_@(y;4htMy?xQhtmYDbo#)#roy>e=Dj{3C9irUqPurY-}U&La%+FOHqiS3Mk19}5Zg4%#0 zm5>eStuz&C11hK(8&F@2SGxDgS6T~*_mJ(fw4yxeC8jANjOkKlQVP_yWqQqb!fRKt z%fg7>61XQF%&k#{e|g%Y!tNzUBfTs4@a6?sZvPKWf`U6z34!~MXet!k1r-DC`Mk4F zl9USrI@3Fw0nLBqBV;eXS>ss{nmZ^mY`@L+mNB$%^Ppa!Xg-Q2L17iCgkW_kO@+d$ zpkiRPgUGNm$!3HCH`O?p85x!V;1~IZ&2J!FOZJ2`ZXp%Z`jD0wsZ3G{ z?9wKmNcBTT&Nv6qP#M=Tzn)kyw6}TQXsz%8nh8BKnC;ZgW>tL#EIao?y+GOiZJGon z+mT8L_#dUIP~aC-4B4Jf5BW7o*<_w&W9&G^PsU7ml8;d6S}k}`5TiRbQtY6iV(Q3# zP%jX&i)j)RWRXe;WS7%aD98#bg(16&q`cE0dnO;DP{;}%6ol*!i543n*_^&$3~@dL zZSp2*5)@LAN(fS4LsOxUDyS4j>K!EIorcug_y~m}Rq&u7Qo9>5_63rk>5%*!?{E+# zzebawAc<5$Ao(y&g@UA@VnDKZ#Mm#%R)oScp$rE{jAiHmkNZZ=zm@xMvL~cAj8wc^ zIZxEs++k|{4&_;5JJ(UvSP?$@cNGiC-UaZ{786-B(k^W>kKR>uFLLZfbca)S5T`)B zKy~Z_ngk_LkV=R|xr(MjNfbe)D-xwfw!$1>YBw=$5~boBHNQmJPWFVH2}mVWqP&Tu z6w0$5Dp9hvi1>VaEB2O#6nZO!9hR3`ml6N>z(Gm%GJ(i1X7-0l_1lZXf9jc_SxOVx19y=JQ3F?Z#2ihAh(?e z{)+}!CJJ_`2+xOQj)RE(!yBiCIWRuNpw^aISI`V7|I|Y zp{fw!-f6ymBaD~M)gY3NFqZK_hn&ai9m{q&*{sOR?A3Ff+YEuwqhHBn5$uCkSGHYS zZwyC}^K6pel%y`cQsvdP=qhiT{D7SULEdqmIF&3eUT0a*8%`A{n7d@XO=2o&O!mM-e;@qrRrDZgZBBRj_XZGT#CEJ+(^JB;FF`RW?!UM2yXI0eIw%fhPtJ+Tc6XDXbv#b zv>Mp*!kpD=YrpWhw*JDH&O$bL&03}S_lBerX3|ppC*xVWXHB^QdzMzE(Ns&W@ksM~ zVJ?27UF&dGX<@Yw-9e>+13M4@Rml-Ru&P6cQn{WEK_elLzekS_v?gQ z{X%0_KUCtztlguMaRik;HZkd058{5))FyI2V*A`gkmoyJqY=Ioz6*Fbm$xjvsJWE4 zcc0iMQbEFAcC0zHJLUs%)QICvA*vvLiQa{X}Y-ko({Mh-(^78yqoDWMS3Zi3pVZ< zON?=1Pff`I?`K7i-E_M-mYy<)q)9}L0Jm1UrmWV<1@UniL&1uo37m=eEQ<@8zz^X? zv)82AS5#V)jd8UgslRov9(DMYF7Q}WaW(oes}#N(?a!F&S7&^$bmRUrSL3)LYeD=Z zXAa#DWI5|cms!4-U^#an$T@92)4iKFVndZ~GP1shRSIW){yo*A;8t}Yq}$l8AUS;` zw1^UC#&lZ{P!z|WF*4WK)AJoYPEw1M9zD7e8c^kS!e6N*7C^#y$`(jrJbejtN*GW1 zuMUi-XlH!C+?{8I2F!*Fcp9}za|&*ktlrZ;4HeLe$d>|cmvD<|KWQ;de7FNs>FvH9 zZ-PK+bGca&_YdhyjfTYoZZ4G<39Xx)7_DrOe`&Q_K7pkjt^<*O`QM8Ol#-ErV829z zq+Id5(b8ocpkOY9wsfHlt+A@xzJHf9w0hX(T38nlBg&auGL9ej=)!{W`p8e>)xmA^ zksgfKDTd}Vv)&B#DA8xyZm8^jt+u|j1)^%}?dN!p@+vF4sjr1OpXQq9{T2P(SNr`yEy&*&a#A?4F*MY6_ zZ}`|af#v>y!iUJNkb!VWCArZAmbv@&eW`dWzxFN%=o`Ye(CVNttVa^u( z&m@&lez{f(vFYzNu>8k!52#X$RS2I#d_+gnR45-21>ZgFE&DQ(O6X`L=6jcp=X$~G z4|`ojb|hp_=9>o68UCTaykjaMLqAAUDLVA7u;uzLlNH~TopuTkE7@koBtH%#vt%>Ktuappe&t_SAgnidA_b0ZI zMo_=pWq_M#1a+?vSMbHFMf9i$>F2ShEFKlZX?d(}f3yk$&C3n;yaiTMw)c$6eI4)vcPuLjJ%phmy>MOd4&wxrE z7cqNm;?uJmcYK&kP4|1*u5`X-+sa(5FJ)e=1@T(muJoejZa%Mrcs+dEw2d>l=5-J& z=2%WJmp48qn5WEq=BF{oT1x}Bbo$bzq``uCAcI4!=(hlqz|2#4(KrjCOC6Jz4O8_} z$VhKEL&CU)h)6uweSZtI%|u%Ikh2aUYTw8^1dO)>8`xv>Tb-cxgU+|;b|Grt&)bz= z)I@E3H5AU_dH)a;4??YCj)hv6H$K#Q${fg0n;3dMd~TH>=)OLKO$q4IUwu%Zd_}-l z(LKc^e4u+O3iv9zr{tpM_cXbJ4&75y#qn2yeDFZOO}MAnd*Pn?E&Ih|`}wb(=bjos z?GEDc1|epvQ5$N8`=`{E3EoJ;#J<7!kZ`kU_6=ls z%1mEecrEU*yR<%D5sHlAXWL(YL}Eg!3%*xc!0Z#-GTj!gw5P2{)qSpj!A=3*u5jH@ zvvzt$6$euvkvJ+rR=Zo78x|{QSKfT5f*kt9b3N|IsIklE)H@pL!LGtKG58Z^pGcFS z&Q2he5bM&}G!@FaB&Zl?CpyT=x|VE)xj0!$N|vLnTgKDNe8cAVlZ}u)A?;5{CB%3- zNm2>rSJ#cFUOxG4|F@Do2;ox*yx&Pvq2Nu9hVAzG5J@F;G^WdV>KzonS@R2IM*;@L zR)y0K90}QBmp1ui1~)8(Mu8DP3-}i(jepQwTr#BmfxcQ&)cap*dH)E_nAAK=-{ox& zlJ~!$Nl@}0sf0|3r)VnFgb-A^BkyNjP3cW05_XEbp8?HFEYp5@e;C;la>^i;5P9EA zQVHc(*X6yJPkwp-BC-b|dtQ`cVcT({YOul)7z-Fp_pU3RR;*j`zE%4t;a>i_WE&(OTbP!nc zCTLecRG{=8`Z;r-5u1?}+{><`X+h?i3dBtn&HMGjFe^Zc`%w2G;Xa%Rqur7F@N>XU z;XeE#{7P{j`b+@Qe^?6Zn&Ci{2nEacY+Q^(9Ee9>Tpuw{j-u&`Mjm zg-ny>+e(NeS(=|c4nI{L3oY7vk+qkB5qq{aPXptKQ5$CTXk+>z6eleGkQ}0{!AJLm z6rkpa+E~m^KXf8AS-2=xuwUFo!GCq&qCg4RN&2CsJVqqkGqH#~Im17e?u_{SF6WHE z4rTctuJJ9;g0qn42oFaLf_l@;GEPUYjF^fTox%Up7d7Efqc{gN5N)p4N8!b~#$+XV zf#@u3syMcdf9V->DLG?k55k42ZhO}qLC0xu<@Ah;Sd|SU($WMSN7P&6jnxgGfm2;7 zU-RAPdZa6AwDS23%1|$1jPUymnluT@hJ;i?HrY4RRH#k1pkmmN4)Ssxbttc8#ErYY zootP%VC34Vb<1_|R^RCPO-UaidqVEUk&2gLPTck9NGhTH>bfb(%O}4n>FZ<h7d>IEubchV#%$$?ZtB*({TDikUN6@z;-+2)1wEyXa--)koR z9ZB09T}s_bs1KqU9T>*{Hyc7p$?%1d)nJk09nsBB zct_5KZgk`w>4hN_-jQYSE5$p477ghTS&-TR!v`W63~R*ss5gRu&CI8{cpXb=%@0Qn z*N6CB3eiYq9CCBF>J2mSA8e&TWi?t)A<=4zHD%FW7@vnYfo`n8`p}JOy&2`ATIR21Rm_MXQ2Q`Y^ucpf%g`x%VOL-&hmCFSj`bF44W|_t@Pu%K&ucBW> zVpl;V;TO5%GPsun^4E@Tu+23ar9(ukU<1)r)k>>cX)w#@ zH=*Zn@L!#HMMReXU3P0+uwyp{H`-Iwu7q8f zH8fgoHhtGhd{*_~Zq)<+t56SSmzW3@OKjmQC04-Nc=;sU?A6+KZe^@K4)@jY`()PE zM#jsKt+5i7cz4*HI?|o9WU9SH{$__x$oh_lhc}wv&VdcTPwoWqSg3Jz#NT9nyL4<{ zG+b_#xr?+pRIQAa2O{VJ%U#{7jMN+3v6$swR-!a-ty>Jz1fP4 zClhs8wKq?;BDhtffu(BW@()Ot#<(*+lKkw7zUaih=!Cv#`9}1&#GhVlY;#Z8aQfm_ z<+|2D)XVwVyRt7jeYnyb8f?}^2AdP*p~^s{ibTCDR|=a}34{p(N>ASZ1L!eVia2D4 z_OMgQp7G?SfzhL82yU9=PeG4CHhf)CYTwgMFP^wKthr2#^dRV4gVzY?_D^gZfIngA z@dUeqC)Vlr)X72@93|q8pa&&F+jG@trFLLE(Zlm^s{cN(N~!ut^#>JGz(||JH!R-8 z|H?iin($NAgebe!!mF2EP&fGLj0QhZebU?DM^hWDuMfH7Svg1f_?c<-W*o~O#rDQn zJcKC-uQj{&soT@fnMu^fxCg2R#L88F2b|rLmo@x@2l`|k_QY@lI;A93=ey5!hh9i` zDAfwJh_^5(lzatEg0ey(l@J+s4o!tJCI~8q6^i?)m|fCugmPS1>qyGxY|mwb;#4RT z)We_zwC8~M6H3RWOo?9s1_Hp(8a_G>I5Wo5R%py-OCjY&=4E=l?aDfv0QDS6K%!Yc z&@jG^9D{VrTZ=O)2*$V2Bq$gol@J(D(NriH3n~VTS9fth{4-%TQZOXshsh3@u%c!| z!iBgGCYh833r>s=_{Q7s|NdLDBcuxvsoZ_3p#{!W+NZ>^@k9gpA84xg!6z-Z2b=Vt zg@-Wdy?yihtiMlFp|FfpLa_XEnhJ$w9|!k!m3GO<X+C)SQjxm4bVU!jir6PtDl|-RD$2XdLPVdRA|u zNlDj@>&Ei@GhoPvs>3>=Wk+Tf-A{bX~@!QL55`<=eg^DpgplN}+Kc0r}OTl)}Y z!5J0irNQyZvCWmn)a_Gh$3A0)1S$N|`1}el#v3$jz}66vs|5 zICdCKrAr*^rKxm@V<*v6a&v6C;@EP7W2uz1j%VgAn2jGWV126tIBT(QA76-6ylIJ++41d+ zf-pSKRc$g_aEH?Z+bRV~+u&m&D<#;nmUPVxg@Bv4!M7+IssRT}1-T3A>1zjjqDeLTKp>3(8U1*!Y*nRmbitxz83_z&M-vzfLM3Y zP5c=)*x{f}wr)OY4&m*q{%4VuIoNWNQMvZ*Y*cJRV(q@g)(+0C2jD z^+hm5;E#){<yjDH`Hx7z)9@~@ATp;wIJ|{4o zhQ|9?mf$&HR}Ro5P|~F!3{kD!6o7qp4c|vS8FwuPaC|@P<*@<)tc~g46gHPRYtc(TN)Ke zF$z;;Y;$d75QOC3>oJ+k0&utq)xd?qUcCH#cWrM&Cah zRuC~|#^V8Yw@C&3r(-O#?=0XyusFJ*CxZVi;&&B~!_CUoayNIeY^lJXLjWc=>i8}E6qh(Kr0fmWLL3ZDLev3#WSGw3{S_mym>zE;C3-jl1H!*(tQOtXZ6EDlY-9 zX{oUfOv%vY-O^Ws`+_d2mG7|{5*&AGta`rYT+oDaEkX}EfMAuYh`*_ z2Q8ehXwfUvX>1ZmKvqTxw69RT^uYRx7KB{jBjppCmF#QQ;a-zBPmJGMX-2*jgzG>CXOj z2c10tI{Pu+SsD@c?ugYw76q-6U+$oV2PsP&8a98~n`}or%J;L)NIkPndTh74wmwuVk49@N&}C-qyOc+9$o(tqiTTHRn-Mn& z4nu=S>tJJ3J61Mp&e;aJCUUIEW6#k6N*Nw5n{y9Nr$b{5jCb|_uGQLYkH*)9cc&b4h($=QtdM@{?TBX6qa;*28bfo7{kw!3;|y zIj@t+rzf6AXX)mbL94l#83)2d_+vM{J0ZlS+9L$GVHZBI1EwAZOx+jiQ-KOeyD+PT zLlLC;lsahP0!52fXHfGI(}gZ-Yd&m}{ab)KgPPAj2NX@we9~JLAFv97HV%Y;F=jtF z)3o>XK>G|MyvgwPg_nsygmNSTIxz%5_;I<4(wwM|3!R2pvJL04;W*w5wshs2?dB)- z#9!M10*N_jRbDyj3aS*KK^atqA+aL^jE)3#3tuGTL}Ij73yFiHj63=Cp))kr=?8j5wvr=4XU}b@y6unc?32?u*d+22S?Ap^xe?Y!*e~?U zh;w!FsmQr|zJ`>7PUzjLSm--^O@=(b4yuCjKO}(noir6H92Kc}6D4|%(tU`eWCrV4 z!ERaC(B(Nw$3ozYGp0Ncj)_w|XNn!Nvsn6L?!Q2GCS-7m9H;vlO_e%iCFI87x0coqkfr{++yC0}R>_iMThUE=4TX)0af=e!oBIFng1aMUb*`p(QD zM}4m}PZ!Yb=n_wt&{Vp_(^F_Fc`<4ookM0?&omcT)0A^_aiiR`&Ddz{3)a$9vbmV9 zuVO^L%%r0Af%vs-I`D;7*N(^FVg5jN5y{MA+1ojkArbOE27Pa5=N4&e%?Pvb#p6&D zRt+8-FFOMYXdS1yH#WX{)OJw7j)q}a4F4Ph|MbE?OE&W0YRt(bKOl8K%^p?>b280U z`lc^0(~ZzHky+|h>=(~0#eWsb%fyw@PV+LYcCvL8)vZqp*R36j9jMsHXX=g#T8^fj zNLGULKJi@7{dd98nMsjsj{~iDPpP`?Pe1GR?gZ~V>Nn3D!gv;@H2;)Ay@Lh z6&`jZ`SZ_Fu>kxM2!|{HiJ2&T7-a4mSn*HR=tni2I(&E0RC_Zy zLsgiFHmuH2n_=_Pk@wM5sLe1^3F*rxXe!x#fpKNr(*mCnH@6F&jgzh&&xH?nq?zSh z_JmsY4WJsLmf7o{)X5%%+EOQz-~*j(Z{(48Z*HH88WUoGMGV2gTs&Bdx6s1PgpeJ3 zbU50~PSp;>dcqQSH@2~8BX&xXg%v?;(1uM~lx*6#VPe~G8IIl!^|Mm7k$(MhqwuM* z!|toZ(~ig*p!g1USn81R>yFcBPTG5$4V06?6iFIg|JV7Dy%{y-A2X!C7N`Kb8Fii- z{>Y5pYdUU&H4c3i6O2UMi!~0!3y^#W+nMF2Mq7&n1RR;u% zmWwuWX*0@xs&4xu&w52zGRU*eE^wWfiA-e9(&)eXvZUCNTN8c(R1MUGPo}9*OCwV8 zYQi2@amja7S4^GmI?QAzN?pyCT<dpXTdrG?gxK?0qzqE^+J=G?m;O^QZaxTbfFjIQ9=Tl`e7Y z`!to@9P_97`Z-M{H^=;2$KTLYvN@Kn%sIwlz3#?~8BxBZ>Duw$@UWvTNwB&hHY0mq z8@3sd+K1eR%!7Jz8zMUbO6oqyNbfcz#562FAk})!nqU{`ygBaO^^owVXQ?2h)t>?cAwZ1DC&%8iuuy8PAY@+4AXy!1FQZ33m z+H;PJW!Ap}T;DGF5}fjYRwQqB=^fVhjIc{%j6Vm5;mVxejnONkkQ8l!#V&!|K+zc% z9Uv=OH^_p{JxzquF>G7Snm5GmqZ+Jl8ElCgsYLTI7;hDv#wl+et+4OwI{59e3WQ`1 zdA=?*W&UxzRwwnNSakZYz*!AAHqAFdQG1s-mF&F@8SKO8QR&YdiF~%A)c&iTy%Q3{ z3t0nsjx+1p9Cs2FzVc?X>aTCBLtlBLc@>x0XZY%6MBVP2Y^Ct!Bwy%l>_kR`s4H#! z4N_OytiKq<$Me#nd(uMKw2g~yULm=wf`<*En<|4<-boO&>bFmtB0YU&&YpsvH0jAd zHJWZA(UhKm_0>=>VMq5H3#Moil(vXe=snyW@81nz3;$ygRd7!PO^#Bu1vw+D_<7wK zCNV5lZc>qZ1?;>YYsB4T4@^C3+N=@8naF*0@(n7S4F3;dnWgrqZRpoJvy(=!@4>>dkn39!V=yJSD== zf>IAtuJLS{6*ALaM)r=>q`gwZkBTZyrAw&TN>eF{ig}g}VqpEXB)!7O=nY6p&9tGZ zj?iISD>5~o5G=iq$vcl%PT?Ars{pnhFIjLB-(T^4!BAh9FoypTCXLflLhT4E203XkB7#{p$H*vLmE= zj#Mo594`DrW1WPp@kE1mIZc&PA-#R`tL10XR4Cjcl@Q!sLQ|n|>*L`5NwFbW>3gMl zx`A#-Zl3zp@)}L0OFX@nrV_x@5VibuG?gy(<#w7%KwrFS`5d{B7`oSAlB5btrTLD1 zy{L{Q;BGIs={i=9rQ;s5-=vO(R6=yDuhUd09V=rbG~L`h^ea!d&{Vp_!zr3d01rcyrw`Cny406X(^LZb60AIZi6m8626an$ z67aUy({$x2$NKOCvfrfggj7P5r+=oYP|8z|zWkP^Lcs;8Sjv-@wx~Pl2U>LOegnCR z7f_uPAWi`k#@VoUa0M&`*N4QR?rc$|7@yJVjbI@5Epr3&s6nkT#2a(ra8GARCp z+b!8&Yj|K5dBNpL4#F(8s(q??!DVie_C=RxGD>)q*leD$$2{9l0$*tb$MJ4hM9L>?s8#I0A~gxD#(jXLOesYkqxpqLv;fC z$uk!eK6$isaIiLBYYh&TmUvGei761lX0KWwhKz}e)S$SrQT_5uPI#njWOZTt?p-J# z&FD@>wt)3@Pf(|-{(N+&G!(c;n|f0W2C|&TaIhp=x-z=7K3+i!!cUdQXO2dnkdgX< zRtK)f`66SP9r;+LLi4t&y1OilFPZ^Pvgd;dMYyt9=m)z9PQ;}4LO$z)32##v_QlGk z?^xap^%6!FzuoLEngq4=L@FVsh`*+(PU*1k)2hP13970a^bL>Xko9{h}^PT7aNee~PdennHEfQ?i_fc*?j zg#xyZlfGaD`lLUr+%B;VKkL4@wAtw62Q|Co7+h=l`i#V6-_0e zFJ7CQH;(Xfl2)jQ>V6zynA{4PZ56VIqXSYM^7Pi7N^sFzUX{QCPJXcCmLLMkB>WzKd|y`aD)s2KYD zw8s-3PBzxW(9TlT4~7;d#@DZ^_miC=Rdu9dsp>|+3hI@{6Rl33PE)1SNpIi$D*A;q z6$-mZB?P_m#}e}QWZy|$3#o+YTHm9oP`Xx* zzC1=#p&)})EM3bG!IV(`Pnv209ZNLE9&8hZq>lA0h%20XBdM08>Q}R%USj?A>sN=+ zBq$k#R6^FMV`wTApac~|znZSN!c)jLny}efYSoFpVfCw37m=MI)heW7sZ~0b1t+k6 zpp~kZ(ljXrz}qvwQZ+(Tp#Y0iLI68SQ=tIs^rGMA(ap% z>en&0v}bHc)f{fCjNX0O+>~0L8ygJSxS1GM=@2)|4A%2mz`zn)1+@ z`AD~OYp!-a12h=AS*3+BHka)X_t{-bS|LyDNM+1h5G`E_V6G_q)){R3qg4RmN)52n z5ce4Xe)t6j)iQvnJOQw(vs(^8mW)@1@s!sg2F12aFNQ0c{8M-HO}V;xFnk-j`Fg0t zFAta%J$BRWkzt}_Z_HGQa7gN`j{Bus>wZ3cB~;*95WkkU){gu$S1DF>p6D1GzpS9# zr^QfD1bp==QB*=!Ap>qQuu!mm36O8rM#jsn$ws9wDmSBMr4`l2rEnTVc{R8N#7Dic ztuLxK*uXa@wn5-J*6WW3SjtYs&_K^i#^LIV4FH)wr{KnDV1ms8EQvWY*f8<>AQQ#X z#n8oJ$iLfz@pG)qKqNjc4!bD%sZd0RnIcMdQD4s@d0x)qAs)SB zaAG$DPgpFGTZaCGGVOdY{h-A?yV606M6WW=TeRC*j45p{Hx=7;TIsXL*-|;ts*S-O zVptA~^Io*3)~t^YvMmA#c33l6?t=Q(N&^;%!RAoCQR!9l5Tm~JNrd@{{)ht!iRW68 z`FC>8(Kp}xQq^tm;-hXKPiSwR{z1gC(-Hgo*)#z#SVU*+-PvnTWBm@LeQ6SuJr=2i*yoR=sZho>LB((=?IGFfH!$(nnuW)clugY& zmwl-R^X9O&bYNxbgVwoLrmSJLmp8Kqrg85N90Ep8yMsNFOLDSguy?;iIf+uw8_nl+ zB%jm!w1#sa2&$WD5)@RCN(fXZXety`1r>vr`Jno0lCn9_I|HgW@_`DKK!Ozoq1qd` zh$e*VzHUVc-Q)|6+z*p%Pe<+tI75PvdpAvjLM~DXLGJxD6$-h6iiup%S~&Akge-fl zS@=DYawu{Wq5hdS*Js%9zr{x=6tX!u{U2n1Nxv6T3GsXVk)}fVy>j%W=VnsJ$VN?U z`Mu^limsf2iRT(Uhte%5-~|)i&m(>4vbGmYtIYB5nfC1Sf-(CHF@I+A_nHN#kSr)X zfdrWj^pg{zU9Ns&w#M;-`8l(LyH2}iJ_{G1_^=XS_;ja|1&SQ@y2SQtN>(wW7!D^VF-Q%Wt2z&BYL zZT3f3RKUPI4sL_SWF@L`-&c=Qin-G^S6bj8VLmKjf#zT2-%u{Ao!0<81;>J?pz;PR zj33AO4-Aj7{&c&NZqC(CbS2%$DyinOy`jgI^v#*Bcc~PAJMql&HMGw&x3kjk>JWnTUw}L%6GJ2-l=zcVP z%~1$j5Z}SuXzMVh1ZG9Q1%m_#d^<0iIbaC7d>?eVzMUPrc=U-t?(QyCs&Yy1SNJ!sQ0u38}IswQI`Z zKiy*~7HY!+yssjSXu%TNIWZec$iY>A>p^|78kl@JfX;<_fi8(FX%dvR45@@z%Z6zx zl-)y6F|1{?O@{g{W~zv0oM@ZQBC7Uny$JOKu9>k?(|rkz@S-W9)LJ)wRvVi*yy4y5c=DK zcv*2i0W}3~?=_^Z6j2>~L5sDG!IMB)!4}3#a0Wt`UxxLk+s=ATu6ClGb(~dF&1DL& z$Iklr3~gs^pCx&YG5hjQu#HFr7-spXJ}#qvv7m_RaqMwQZ$~Sf`dbgfExEdfwzpS9 zCBMOxy)pNCumGIIY;XCyqnqe{GhKQsq%4SE#hYla?WSa9MbTo$1}n>~gYo%S2YeMR zW)hzY1__JVe{lt8wFvc=b}~KPgoRB1&CFyZ6byA2!^qbtl~{hBs~Qk!&yFv#Ie+fj zHQOYT@Ew@pdj=ZZrz4uss5B=>ThbAPO@N5>{^;z8`7bNr&|%*at{)k44;~+gaBNhD zTK(`j5#O)8p#Y2jp}p6zzT259G*;0fi2`t@B>?FOffh-*M3{KAD`s0HAA}~02-$PXOHYnkB_!Kmuig^dPDU-dE`|b#41(4Dj&4Jm@w#B zUzX;)rVbsxxYlfK$TA4Q=>;o@cp%y`S}(WyA~8{&&-KA+Lx?nXo^k`9%#eOAq_P%A zdgK$30U`xKsj4HA=UJ_n%7F7!bcaKHub@+4&! zGUB-H)IrLJ=*Do^;X)+GU0Va^$bxdn^#eWHe^euu&mQ$zL{+y$j%@z1XMQjRcDA(kAmv zYwd6O>@}>l2l`ef6g^s^%(F^KvEn?{vgJm)>#6y)u7`RFl=_c9v}qEQ#TKcA$d-P%&i7EWYS--uXoe7SL?`1WDZ-VoIhY<_FU0K$?7%kCP+LGe)%_KIbVNiHktC zFE$T7%*NLelIm~G#cz>ZOrKWYPmRV!uOoG$)Jb$C)C&}i$I~Pz zG$NG{G_ItnP-qlXIzZzZlJ-tVLynZ2NNQV| zA|_ZBLkqrsdIyG6>tNm5$_K^~>3%KvEo4tf?G34TwP1cSMoWV`Nh+a0POR{qp1<+( z$)6_j(_{}q_!J^+zC=@@gbg_wEP`2&#y3eSp`(#ljWT0nhbeTwqAk36ed8ko`OlOcG0rKdyDkJqqt2YbuQ)mP>7NZrs zEZKW<|Xgeksf6?8$h*erx?E`g)Y1JNIZ;>-KFP3)K2y$nGU%+%1ZUh6q zNbaTzrMm|?>K)gxw&9|0SU=EUJ1ZA6&^dfMRN~Iz-J_DR8nVYGa6KAe+`qfw5!ZW4 z7DdFjN4jM%alS@RgQf6Y0MQk^W$8stvqyXP3C!qFxo%>#HdJd(-Ky`Sj$Iuoz6!n_ zzZmGeA-(|q9Wy~4U&wwr_aO@QSY3@TVeJ#?U1n@Bcs5?7mq;L~FIqI)dz)~Qa?yUM z*?nV?hTH&^sBj{a-Ej}<=V8HWC|5ardEcn4vCYq;XT?{eiqs00iZ(DlN zPNvWg;oCt|NHNGlxXT|O!aZe54BV+LSS-g1+wv)9{Waoa zeCw{VC?l5D-@3c|yxvA$`tY+pAc}jSl4sRrk8`1zTy+;aU!z-w7>;<$(u;P2;bY+2 zK^Ru-u`uj%$A@80nIjp7iDB16=~fOx?(7VP`mir%xodGWA(S@)!n(U zh1jC^~t^wpxmtWr2U_tAbH9X9CM-Gi8#>G*ek7u>uK#4S<{61Y$C(Snv*+i>yBY{oZ4)j?cAwSIPq zi9gZ$!b!V(wGT;Mr4W_GEiP~agN!|2GSxmp{xoWt;Pa1rT2ML` zZfz*H$~^CqxP*r1rS4OH6f+bZvUQb5H}t}Cy9G{h^!7!)<g`3J1NB5!>1vn%?d6Z@hQ`l96VGY@kWoTX}FJkcZaKGkJ0(QM|Hs*hBE zP%&kl3_AUW#jg0h>@%VX`kcZ69^}i$c;D$}eIlb-PgI}uHtW&UX6cL{cRVX6A5I#5 zEMUg5{E>5RTs&lo(Xoc|d_T#qm^wH9C8$a{2jqbN4mkU_ysQ~z>=RRSW28>sCaX|btVK!1QB;?D;4w$f_Wc_rjnPR`}ZdHGLoadSDL5aqTA6Wp8kZU(j}fgK~u@g)4hzn zpk$`?Omp!MH09h}6uUvDu$m^JId7ztlK?4Zs|8srsa@KX_M{TAKyI4lie+q;IUCI* zOM8mKlD+az&Dj^yeNNSB7eT$iBO)tk5)?R*N{9eGho(Y-Q&2IKfdf)m8@#lyBb#Fm z_Rd(^*Z4-yzqD7$j*ycAsXQ=YSZ-#lkXVFY8ireGDi6UY$|lp8{(e6^1pVFH7ynZJ zTAB)lM5Gde#JAH_C?tA0cB10gi3Z2sPgCg<$396@=@Q5Oj;4~EV<#w%onUb68#I+J zaqI^)l`e7YpJ^(&IksGJY`MX)-_lfabIiZ&?*692%dVI&_ClJz>e(<$*M!Ls8&fuft|x?bYzpi=%5DAhgVA3*0gNs-U)Bp68k=Pgt5 zkK`+m)YY#*S|MqS1&Mt8y~@SsG72JOd#*Nz>*ek|rvBay?GuTjm8#X4Gh-)(&U+_FYty9=fabC)b z+qwIt^~ne>?p5cH#z#cR&SYx>JZ2Dg2Z_@zzW5S$F* zI1sCbNgeB3Yr}A%k8=E>qfTAGuxmD6&%YWDigcCQ^Us_;dQf*&*rot*{cj*Ljs^Xp z$rujOaX2zBYNNIpPRf;=>;N8G;-b=uB_iRUjUPO%2S@zI>ysl@IMyf55Hf5v>wsv0 zRtu=Walc9f(iI}?Fs#%7T@B9UNtX-{V*`k?i=o)vAET94WprD#rBQ+CaF`fln`_{=qGc`k4M?ANN;7i(zI$rA8fILXV=_7|g@16*h4g zRo5C6l}<>bn<&aCSIhoyN5gPS7M#@@t2LW&0@7q>Kfe>j=03D=ybf%VK6TbK^+!}% zp4KK^hBZcwAqbVBp-C_q0Gk`E4UoNYIMECUyfKKF174nN)gjehZ3slvwun{c$5cR& zX@bHa!Ne0tEl3L4tdHqKo94%$Z-AF3XZU48D3+t~$+684#3()@(8a?EniKVLL5zXT zfV2VU%`kpaf<2G^=g|*q>Hj$N>m~5I0!v_gt_%073($OT^zl!R7S6D2^pLs&f+I%s+0@K+c&?3`42P|%KC>?LV!1?E%uaBp4rGFssdR~_FQ=*G<*DTu zMrK;iG#6umF<;)O4?x_10_c$nXOE9`g7g4?E5 z9%0*kJ9M}0jgM_>l?M|G#kWIY=m59-$|i%#IEBK|Yxk`lwH=ae9u3S+Kgb|IAmyHB z0;_~40p==o(RUi)gU~c_8sLAiUpz@Y|5fNT09PzKJq>WGG<(3wI&Omt*M|E@ZP@v4 z2TJi`pX!(RyrUZ@B585jCZ6l5`$ZTNGZf!m*l11p3#xAWgU?1yIl(TE!mNU6OF?Sx zw^WyNtGVBVs)1_mPiQKXBu6SvI8KwKaYb`SaQn`bRfAGLeqrg zK9c?7lAHh9d6N4ieyjT+*iX0AMsgT2mXKoG{AjAoZl63{AA;n0%sLAu@f;t_x@g$Q z3aDI{{dSuiLBDt6E$m|Lhg!s+3WHZv#II0w+wXriig=q39{GOYs?l<@d1bk=VHL*= zJMk>k%P@g|kzzn@fqy zK0O$@Rb3!!4E^u0!&1?UUw532i)!y}Hc&#|6g(P3e|A1(Zv{;$$4n)!1uDR9MxEz5 zJ2Ip9nvUCGjW(Yl0^@s*XN?0P0wjNn?W97mSPL;1g9HRb#EFl<)pjj`?s4#$r-)6`xC0f`t-9dGikU87|~k9W_=SjzBYo{8K|^ z09b8`H5-z&b>d`IxBVB-M%7jF#IrIkaJ_gdban<@GVR68f3*1$#ev+q>jh9XPn~TW=f4WIzAJgZj?voax(3{F0+FoVtY3$F zlwz#l=)yU2eyx8g_<9o!C_z~B*aRffx>3;-Pv8^>_eKtaop}(C4;V?v*6?a@*YrfI zHdebH@`H*?+`%MmKD-*vj*J)=8tZJ3QmJHFA^W1SQOJmX?VvEAj+e(EeHZ@{K4(WC z8Z{PtJ(zsSZl=E)cEE#^jT%;iN44>0g>_5i!U(%No1K~{P;vURl*IsIbMp}tq1JFJ z**g|8P>9iUx2EPqb%gE~MXCMqZtidRNG>xlILMz=8vSq}3?6%2AiO}ougbagq01-B zqi}LyotS=8VsWVE&QSJx)m`6ahR#r?Sry;HKEu~1<0kd}Jk5lyD%ff~Z}jf;j*KQz z*~$D(QrXGYGXwkcf?~ANFRwut$Eykmim5wx-wl`v|6^u`l99ITP|09D{6ffzJ+_ga zU{6s}+Rx;l8VY|!LLvQt>_?zp!ZhvQ&3}O=L8)^{C1jKJHJS>g01GMx*Y@@D)jIo$ z*T)^~xkF7e_lIPgOc6=#`x7p!6-CzHqN$x8<^%1l2C2C|1S`{ZHuK!{2l!z~KoNF@Z}htX6hgbOML!d3K; zAJk63&2c2lR6=liHBE)Wsi0!uw1b@R+sS5xf;M4v-3xaK3<5=E>Neky z`K_(Dk-Z?Ttw_adq;@9wT_lxIUL_W)PA0gQM}8~rXUW!w@F)bC8yU? z;31Mq=tv|`8+z9-A#uF};y2(uPIe+-Kx|2!CHw5sCXYyU<6yrfAtBB8OO%u1-1A0{ zdIp#ms9DdaNl@|}se}N3Ax(t>zMx{rb1o6sb|y&gSVmGd2RfJj+=*B^ z4w@9McZmKM#ODISqLl!t1hZrQl1NQ^t>LNc||&Bq+Edl@PerX(|+4 z1(m{Zy_uxEQ{cLtkB+k+NfkY!{{`WCD8dzNYPO9vfz<;%B_&Y3?=(t3M6x&?rGLr! z5QNgt(j+L9B9#!7ewn61p;S;QjMDFtly?eBAL64Eic-=4f+#(Nn|!%7j^BkXt#k>H z&XENrGW7!u$KR2>Oo!uByu(3oob`56jiBI&R6^i*08NF0qo88Iah`{<{^j1ijQbd} z6`{~fD8F*c#;^V^Xm25mXGm6_+F*AzNV%Ftu}-7D@6! z--!7o$vtE*$XS3?LM6%9NlKyo+F_E!%R|2;`6sex0X(#2L%Jjp=(S6mj7v%qx~!ct z*6VgHoHF(}7CtdKT4^qmuB2sL-SK(Pr`od`l`Xa5sra4X5iwGPviO^O!9fWjNV;`y z&`w;2O8G;mWX4!VQp8E^dprDMf69!p?6-`DlFo5x$`Cwe!4Du5Gc(3s?8z7_8Pd-g z0tsWsM@B1y!i}l|3fA(c!soh9#0QXRWDkPITM-%Nylk&F)5vy4-_9+26eBC*0S@pq z+0Z18b{c5w;`y@7E`)EnCK7WZ7!b0A?{QEsf0kK}3!Y_`V})m#J+&wk&D68IT5Jkn zpTUd@#9=cQkENW!23#CV*`NL7Gp6uij{d>H+IX!sI9OWZJ==_PBpR!WO(_66Ok`p-w-L2g&M1A#C=rF!QJ+r#KPBZg{@ z#IDrN^#iS*zYOPy3@~-%W0i`Sx>D8MRe^ia3^*zGe27=tez-Uq(dwix&Fo@i*EI@u zzPQ75J$4N01@0(cMU$X*lt?9HNBL%&3bmsYRE!;Ew<5dlBHLtXJ99yM9)?`UwehLg z$+DQ(FLgh%i>XIuE=JUvWiH0|z-w1m%Yp{IZDA@oyKA+^zdY^HT@R20k=~VidGmrS zu-~RhP$)+#At-;8rb3}yP%%)R&&&F2l5$}zXL?yPp!p;pA$y_C8qb2z+(8ju2Tj?# zz|g+!2lWCa@?x3Y^j|t(l{b8B}CEJlo2>2hTsZih-R1DdkPY?MolCn9_mf0{%r|wid z{hE(Z=vpm!P!OX#Hsb5BJBq0z2SL3+$oA4CD99p}5XhcHQ=uR$s1%0m`6T6?2H917 zghC-Jcu)|sJ0$AsYLdg#DL6jBA1!bp8LNqMIs^$tEl zp-2@xD2UYVMt*&fqnN(dx>NK>I8DX18bEFQ1%?_?`N;h9i| zgCoB(wBcX+M$NyK`!m@SQX57p-mRP``fJ`hsP#LPXNm1xN6}wJ_~_qN98LBvfRDDA z$eNLMX_I;Mu0pw?I*tH4lkRZp4&p^nFHjx3geE~r6r>U&Q8v(2D2XDdbVZ_!k*zQX znA%NDn?$MkM$Io#ZYFy|&IF_qDpB4_QVQkS4wWcgKKdof2g%+A@X?kL=@Lbt*e-1{ zFDX&zvUVhxb|=SGX1Nz>81IANfh9Ljv5Qe=q5UuImK2Wn79`uLzya1mkzj2jtyLmw z!wBy&BE)p76A@x-pcnZg#CR;2xK{ij7+4V`_6Yp)r9NqEpFSqjGHw7o-VYQxu~_7J?oAzO2&s6wAwOt3mPNk zpSpu{-WjS6vVk}lz6~9m36*#jUH{Bi?5rOQD8L|jDg$C9ERtxq>x6}P_y6jVc zSrE_Q?X>raF1F^0F0nDo3W9rD4DXY?DE-x^L{SM-g$78*Y>oVShF+cbL8Lfi4C4b1 z_im_nEdBOmvm&vep6j$|2!kH|N+zCQAH2G<+F5Pa7@Y~s&cr!cP#4Izc;kP{> zurpU6Azw~4Mu{a*V^@Z>;5WCM_teI*tZaSaY&1`+=6u&VlqxO@NDU??WRLd?kT6VkgwI}nYK#vllgLas z!xJfgpCA9x#K1^gCB{yI>p3z0TC|<)$V^(YU?eUsF0-t)kQR!VAYN)DrcAOcVuJWR zMcl3LlDkWw$s%#*rR*0^+{u3xN`1*=bme*p60&eW@hNOyJqfqVi;#PmYoU?FzI*Q0 z2@R@0@zK-}W1*x{>EdtGYj^7BOH8p7nJRUr%VF_gNwjpON;$c15`tSd$VgT#qvaEk z`BMJne=jyYB_pzRKTm%#J7DsSM)3%VVmf#IkgD7MyIm+qJIM}AwWxw#+Y5-XOoVav z=)yuP)&AwgtApF-BRvc^Dpux;-@G2`xgmX~s$}jyxAL+^kluW$LLf@r*8ATd+)g~# z{dh;ge!M+*KWy3O_SxP=YoNxHtbt+|eHZ9(QoC=fE6KY!JN@UNXK@OK@_qOJWA9DC z>?*3naS}oT%_>STgpdmX@*+tGSwz|p4TMD@EP{Z>(7bfN@cPo}*S_~UAf<+{RDfSa2e%3#)GL#V3U&=!%%X(LH zZD7Ha=KXfiTrXuY31Plh)jOK&dKOA3y|$<3dOM3j2%SR2_x(JSvf}G#u1~N~LbFKBPMVEo;QYl~b zCt!li7tOpWBVXikomJu}{W3>7u3%)4ly?E)oy*DQ3dtayb2SM!67ArF088f( z=F^?MT3Cp}l)X9>J1uA~1?M&+b#>n??eEI0aV`F8>N_jX(OaZr8&M6+SO{dvT$hkP zktU!gL+u2X8ReiPmid*Irh!7ZQX=aa&`Bh+W=1u`k;bo0$@KW&ale^n6Wbe2&)MqE zbH?JOe3{Hfog?Oz-PH8odo#zk$h);5U_LrBG}4{CL0^awyCzF~0gN4=1#qs9p9}vV zqc)45ho78No(XYgEMaH^8NO5&(4`-=*&l=VCa*Q;+}7EfRiX#r`KlZWVbcddCSkQ5 zE1Kp?=rSjWWs7O@qtuRGSxtqrNFq|-Yux_^=4MJ-Hp>wqlG;}agn+2F)Z*9XSXHF< z?ao;Iyhv(q67$M#YD#T942?x-Bur}G0nLM?HX)8BwJvRZQtN5+6qMQ&>oxn_ED|0gh@o96v;%? zFYuE{M2Sxo5>b@JxkZI^^9rNpz^h^Hkw#|{pWC^k_e@F)z#H3xkU?vY40S@YP|K1V zh%(be#;BQTsNSb{z9fo;SI(U`y|Y8eBhzS_8D=g`f1AG9 zh@Qv@CFuF5LJ3d6R#PdI@M0i{3?&T1CvWMgPt~Yc!qFjU8Nmcaf3SsjLskUdbNKpm zT33h*v!J2^)H7bghMO4{qRGOi{^*iMw0UH7G#Z7L7))qEaa0}t?hLisjZTDN1^gP` z*6bUCvWzQQ?Je|Me{?=PPU?Iq2V393@vdksGxG<&ACto7xE=1GBpYp~M-HQkKZz++}E{8UF5E1zF0!bGSj zM1>v5!;&?2a$m4x0x1=*{458Y;kCZ05W?hVy%9S3%Utmn)71iZVmZ1BMG(_clhp^lgi>{4$e>Nnt95 zC{;D7e<;kAl3;BAiD+hj&Ji7+gH-KDDgvwh6xs6_N)DD%_$HTZ`O2^MdjzH|ovd%; zC*fp?PZgXjQX^HW{f-gw?NHw;VtgwxP^LRY{@_;IAFMU+R$ug5=?z)VZM0RVlBmIu zXR4#CqjOthjp!8dpQTZ!zKIF}2cq?@)+qdNQG241_F48I3}l@i{iS8@H>}L@p2@G0 zzP;ObBDazVBCJk*31#o%>EVdnr3|ZoSqhFWzXZj!&gL|A*X4fuJKdEcOMS0-y!YGe zEy>m^*~iZ2KtISs*l9@rQvmaL5Zpmff)bK}Ud%(`GSCu=aS-$%FV!WvJ>gN<#@#xL zliAsr7M&H{bgq|4WvZvD&f-KL_xvSwYgkO!R5d{fsk2ziLJ6gpo3!Xvtq}9l$zLYa zVlfDzQ;3vb!$aYuoaF{uJz6QemW2|^jg<6GQH7Y7DgFwGn^{DriYXuDp#(6+R-;!d zy*=Y z$meneWj+sU$i=Al};&JyDyn&bs@!a10s5{iKxwDlP2boh24Rk;L7VO zvk%U&t)*>Xm=Jxsq2iSJmDaT<@Cat!#BnV23pBt^+`1w2(PAVi6gL<>j zZ4q?KFt^0-nuzOJ*d}*5b1P*&$Z1qiCzlB(h1%2wh|>p72vvCYajRH)v1PDvgM)p!lo zo64y1jJ1aU@vJgf5`eVdXu*`R90KZ`(mA^f*s}@{H$Dj(7brVi1I^14w>NWXq(mJ* zY8e_TgJvjojl7prirg&&_9f7XD}FIWwu$ zR4Rr*+bJ)1P8WUsTr|yQEY6jRA(XkO3V--nQ*K^4DgI71sZE*UXWYwVUjDFmpqT6q z|0h0G$jiH~UULxygX0n!b87H)HzJj@d(8Q0Tiu=op;ynKSQuSp^w~tue8Q-$H-mRb27=@a(s3vb$1m{o{55Oa&2dmHhc5A18KuicK z?UG3`^#cdkBY{hc`m+|_zQ~9aAGdbJqHg1=?m)CyOl$GVrO}GvMrUZSGjhdXXS_bt z7>JT4(c+aWfnzufE_%rYy>?Frl3QvsBrv$f>13}AHdcl3xK&57+W5nOF?e6A5=c|~ z_~kJ0cKI+cdC>ke*c1%!AKx-C+!}%#-00L~!fI^ZpLEopR7abElQO*1yf>*3*((`I zS%k(nnl0-Syrm@D6s|QNYChaBSECAX-(%4%uH!JW^x@HD3j4WplxDyCwVup)&SbdP zOEm+H$&`M0{ORe3$8G*;o)Sa!^W$y6!hcv;&(T$S@e1fvJieu#A4iZfxb;T-gnz2% z$MG|48{(E&#U>_ z$+DDsPstq4ejNN397Rgb?f}uSyWi!E@5pX^dCmUZ<3=%>#qk#EG0QZB8+-m_P&2PIh_>KgYC549UmCl060 z5wobZK5h(kJ5jqa3WeVgA!fe_BMNm=^u1VA~iF3i~ZwMSxUH# zmJ;HVcQWlYE(!Dl>_Y6v+l}Fop>DtW@A>j?d99;p0mhtM7@hv)qh2jgH+XG8vo(!w z-Dg7{uWd-l#Ue)JY}v(7`9E{kRvcnQKJIj~7bI&%B0NrsIacI& zx{938QGaTj7O*&F*YeDReu4EA$M7JydJ2LPBJd~kP`I?Xgkn%_j!90-f=ixnO`2#@ zp3Tm{+ygCZ$|+(^RaG3ysWf>dMQ6M*G_ql22(F~q3+z=$olcB4CWXaizAsK@v3g(p zOu<4&F=Q6dNFrrNT$Gc9?~5Pg8QH`i+uDhH@A8PPD?iT*QOU(McRG&(p8Q^k;bbiT ziRt0*qJW*I3Y%Xdm=UyT+`wYUZW;t7q%!mGc_^GdD1gg*cqp7cAShnR*f)_3vHR=Q z|IaKuQ~C?7{>1^(A!fprU7_p6C<2LZ?$TDbm-*M~R^v!w-dzrRfnTW}xv3C!=s6KR zFdh9d2tDIe4B}BBP4O6nh&IRvZoUP4mtlw>z^9%Y=!y4&Z&h{8fvYVWzaJcc* z6@dDDj4Uc|oWj2FX~mhs*{e%;kG3sx3zvdh2)^GKxP(H863M0ClcT=X2GL94C&5cV zJAv^J5n1U6|Csu7F$wHRk#R*PICLimfn#pA5a%Dd`wM`S;ql#Wflng1FFutDj|KozOdHdL%B|MSqATG>u5NWJTH<7~mOyvAUj@+u*jf{;?bRkHF&emE8 zRV+;|&BxPMhPyT19@z+wE^TUb`l)aK=@LVq|J2m}Q=K9p`5qL6=~dvqxYM<#f@5s= z^FSa92k#GeIyu%Ax9cE0QCE}p0835f_^MN}*OIw|IUe9a38dZ~J7dHlSs-pOe@^m? z^ahi^waz;$!QG!r;KKKsZt}N4FvGiUP`uW(Q<(N47D{PC2`E!dC;zd=yI2fD=oBK?5AaYpxn{Y6 zMQvIQe2;|^%8k;;8grZ$ukcD`2M+uUvsUeK7Lfp^*gIjK0<>G3bTVTk7sI4DLpL2G z@opD(jD*70Ip&sMYk6L=p8HPQ1hTCe6SG2!tI{jhIbv}jOgWFN=tIy=+e#fg$)%h$Ew4{R&a%pv|n8JmK+M#xveyYR)*&UF9q$}?)=s;@awsRIPfcdSypWd zAAzkGqA;D&xC}e7XEdyg`f*ZpqMB{Yi89<(!i{yM%zFi~GMQCYg$!yfEt?AALbbPT z=;S$AfnQsGXxfspEB~ckNON;-(bqboWvg_QW2(KqUd$}Jsj2;o9;|pBjBVE5qRx>A zE1YzNB#(t^=D~_v%V0?W^2jT!NusV}zkaL?*pEObZpSi-8{YzreT6poknLpp7V>|A z=4FYSeX!!bGH8ZU7i~~QUE3c0ZW*wTK&R=V?)NKDH}hb{Z_8jQiHmlxd5JuJYibTG zQFWh^_Ov-TOA~7S=Jv`qd6V66e%#7o1vaJfaa8MWFxNCUu_=|0uN6)6_n|q@7s2r4 zCGzBNjn$%e+4Ra*cnF_%pa?sK??7{bxLBE$VXb8StS5Owp-GBjv-$DUp%b?X4ALV$ zQ%w53CF#X$+iGoF-)ZbFD1;rc;9Tq!&VqeR28j9i9U{A(p5un#IaW~JJsWzE5??P^ z$4e~<#9%;ET8l{CLIS}n13Jo~%t}>D!*`;LkMbS-ooaG-WR7y+?kTf9Hvv*I+ao?z z$o5e73k*+5F*DKhA%>Gp^W9>(k7j0mBge=0)wKA=RU2;ri4 z!|wU58SsC{z^8PCFtuh>q%h)9F(QU)QGj&+6Ukag#PEDFHS1#$t!JOP4L9I-o8p`` z#e+JHE}oshi(;r-A3pI1fy2iV0m{Z0 z6JL%32g%=>#%C3xF*z2eW2bP(BFlNBS!MmKC;7rclO$9AV(7%_HN&?`40r0j4Duuzf|qGYUFG` zQaGDXW+?V#$Df?yGgl9T44GSUkYo6$)5+e)S;r9JaSKryr*v}v8wsS|7k5T)%p+oH zkL=0bRX2{KD9xd9;!YeHu+u~@E#MibOv+L*N60=*I=&6_&o-y1VhytNheHQir z^4tfa)6Js=#)3@>mz0}GJ&c;ix3Q$op84O4*#s%N_wgV&86_wo>+N58D4dK+C??%Z zg8H?Zr+Dzo>4sUf9avQDICi3rLe4@EZZY2>s({j@3U6@#}PFSsnG2GU~yIo&CYudIKLt^dpLYb zhi1KovkK218Q=-(6N}0^24(zJvbRG*v==2somdB8C)B}OMs}RUuf$JQ*Mn=?Jnh_0k@APB9sl+_MKmE*Ecr0jdoIvV}7Nn zy|NIsDPs66?8HV4@0+DB{FCYWTJF`Y&(LyL8@2>j6^~k9T2;u-McsynMTUs+jYj^3 zg^;Hj(icD{PYo%4ZHldD!>|e~d;8fqD(BGsTF-XOfxs^esw=%x%r?8JX&4lYvBu*t zwplfU>d+fmO-N?d&bbux)y{d^JeA73v|5u_boCoHrrRysDoAw5{P_7fq{5~TfLz1! zJWn*umFQ#1`h{X>qae+cW>UkPEC-m>x50Ew*~?}(;y`lzE`b9O-M)tyzc$CpmE&|i z0LHYx)G~aBGde$0lHpH?nPxXNWjKB%G%irS`)Oz%B*O{0EE#sG<&$AgoBTYL+bKwb zZ_Xi9N`m=O=}zKv0!F1|2W|{pj1?z9MWxRaP4lx~Nup7Cl&Z*73)OD7*&>@QDF~nT zuqOaMzlT}J8je^MWf@3tO#oiAnixnSP4(oTRA};)f7%Z^<)x~KC5Yz~v&2e15?ieA zGxc?nW*s*HQZnl(K5f6OiMTany&^*R0?VC_FmXoMM!f`_>>N5rWTS4XS&s<4k|{qsah%E zJzq~E7ZS?6RaKj+Ckh3GPQNYB%72dVO8McaB_Bal-nWboEbVJIHn!k?EK!5nn&`sC zTG57)#^`V-!ocW6cVu+rrSvm2g{Ktp5^!n(rK=-j8}JDsC}0(H=u5&?iRHg@OjfV` z1Ay7)7HaQ?=GsTcNm!u^cAYH*BynFNK-n;BfOC3OAsUkhbOd$^_kfOG6|_23h%vOe z7L;ccLW10tn-UL(Ss%-Ih>F>TBKZz<^@oD?{yC;mx+x_9@jv~diM`RV(>fr*t z+&9hG4UWRV|C)PHHmP~HIt|(za@<`#dQF}^DRz6N?%scXg7%K<27erc#N5M!%4k3B zbh0;o)(u8@8E$Z?soY<6D%mSpIRNAae9<*M}O(;p8sgCGH1bX6=eh^Bsw*hhr(5q zNhn4|S%u3qYwR@4ZO^nNa!X|^U#58^%qzt&|7DshSQOa%2nmX}e$=V=dL9dPzfAKo7K0Evg~;_N4~3I!mK*lvMK5KcgmPoLF4Ocf#ebRR-?E4VFvZ>y^Aw=n z+N2Y0piL|Weq1O^TkpAT?ea?Rc40?0k51idq4zP@`ttineTI#uce#(U6f~z@NP`_E z$~cVEQ~udjh-rQZCeC?B%A}!~rk}*yBc?eo(+JNvJg=vo3TJ)*M6FUd^I@Q(3}-$H zpVHw>(=<|%%=wuJ7(q;B_P~1h5E&gILClp&J!Zfqn_8e%R8z%mst%*q$4`RShY|SO z6^v$J+>Z(OvN1oij*{X^=2x1?PZT0Dg_ZtK>1K-ElzotS(fuRbs{h*Vl zQWC$mJl3?SWmihFw{0$VM$6uzaAwP90_^$mkz!`qP0d}QV2mtY0%MzzFjPU_NSGv# zg=*$)o6jkOB>~7IZ&E)4c|ym)J--atH3f(puYkq{%JrTP&C3!u`?k$y88kzwn|<5n zmNH;BK_|{aFh#d0bzfG2x|z3azOf9JlDHs{R<$L5YibT(wWX&`z-^muuWXw**%0T) zd*`qMn^Jrl)p}rj`uCz~eu5()_jIR2uWW^fQ>7i~Q`jkd2bxFa*x6FODtPtDkz#>Y63wz z{m%jHCdv4pfTpxGk<5i8gVzm|I#O1qKMUjHDd{sb*3vv0VQjy#nX%lpUjF@?2+e z2jz+`b~@P_fz1^myo_8?si`!pP9=Nks=x~6ik_E1>V0A7&J`&MPUnmcOfO9pY4H7| z_lRo};uOyzX~M==<1lUxsZi~tcd%^}VZ4c@fvMlEeKN0Xa{42TZ-R+){)1Ww6k+s} zczZ+`56@N78IeYfLMqaDIuN5$r14G|Kt>wB2%plCM&CkG5ywTj2pN$_wOAl{aV9`Q zFDNAPc%dqvbS~@EW+DX{OWfBvEn{mfb3dV}j3Im9F;`gPk}cS!lr^yWKF#V$DtFa?+hm$u?qAAz9*XIJLv^{!~_2+ z)blc&_5HC^I3rSi7n0wfSW7k4d{`VjQ*-Yt7)RxOMAWw4pz0!+TOPYfGNOQ{^vP@YSC;BFPZGsvRy-av9ELz`}4avZ=sOqZOaD{x(>tTk-vd-D%)>7&f_ z^bdNGc7eNQtkm8x3{8&suaGjrXR+Ok^JF2z z6w82LGkdQ$d}G2gpHF65OQufFt=XFH>kVHA(*`>>q=@J}EQV|xf}q%ie*WtX|Cxuv z75Wvx<+D5#t{{q_q?3A(49UFS@O~CvY3bM&*BeTFv$saaU-hrm?cuL3%-K6Kyj6`r z%3Hk>xLC}LBgG`Sd!n!(hCFYgg)U*i-`f2eQFt(Y#L)GGS%@X2RIenKlzMQ_N&0eb_#a+!a zw_WzGku2!>aV>{7*p%Erl*m9g@F@YKk{hTNq2Hr(IZAGzQmy_@wfKbqpK}B8cj*Sc z20sZmP<+~cZs2j>|ZVayA)29kHX!IgZ1_movhPoFwD8Fu|{-?_>Xv)VRWR^U7ISIrep5vy;E6J zzC-38-wmQ>>A?`Y|DT*rwiaXUeuS5ie=IeXPgk8vwn9>7Eae|>P9XI@wKIC)YN;sC zTL&}t)IZ5{YWfSU$iJ4L@AGE);Dsh#{8b#r%`kTOL!r~MdMTu%Z&HWLB;fi9Ywg39 zzYc(til82UP9hewWsk&Qp+7ave!|i$`w+;FpdZ+OwsY)11@}811m_$Rl#m5K>w~tI zD6rrq6yp@!Q-`7Ael1+kw>0w6*JFr*{UPg(HD%|r6EZhw(~ioGtyDe_cOc9w#X0|Z zxTmowut$mriZ|fklnXzTg;JVORnNnD>Eu5TcMgj|2%SPC{6#zzF8srC1HA?$j*S<9fa=ef<@fuPWBEXi#fx9o~&@hPLk2K#PW7WyS0fG*=^#8sqKDmqpRBUt?x7o9%fmPjoLS$UuygCZ~XtkgW#l=poB>6Z+Ix2)JiDE z#(z+1<40;sGKcN@vp>X{A*Kv$+g*Pq%qzt<|E_-sivp`S35r(@IJgP~;Gfq((I(*V(y^n{o8iuHw#KpMuN$@44aSH6QkMK}986hZ_n7Bx$QSQeTl%Mdh zhFpw#Pwq^NkGI-T3AC}^?!IKA)opYpZ$LyZHW9U1Y|m3oE>lBfHMy=t3b_ z|8l}148G6#@buUj0!)SFv^&fz(9W38qQI(Zg5sr==f%4vEF@DD3K?b7`Qn|Ij{Yt0 z6c)PxI`Yzv3yI45{i41V+%Oezl=tj47hW@2YaR~MT?GG*f`5zQ-;#BcmbdowLAVij zVzkj&uCg)9(SKWxnR}7@(4PjIjnVN&d$PAjyRl(pc(QkJMv^6?JVH-ARUYwHaK9>* zN2~+#%kqc@d`g!`=t#9Hi*Ro}QL$~K974sQK~2A%!l$sRzL%nOEw&!DsH<`a^kd-O z#d>>7)Y?E{E$z))C4 zq3(iRAOix-j|p>NeyLLa;985nDnw$cwYUyDv9%UuUUX~9Bt=wv!5E0}TH7UGniAl3 z>Se5=BJZ#8$V-^~Lm@&@g~v_M$y4EhUt5{Y^oC|vc5KeIeGtI87u?IE21-G_dD^R-EX(oLbgDnjwjjO4LVI1arc0+%Mv&H z(wO;W&LP&f0^nAK&l^r)U}_FYf`LZ0q9z%|VjFVjD0 zmA}5sga)D0bS;}<7`yDU$z<$H%U~%P3z>PVauB~Y_gr7)pr_3VaA8ex14Hx49WvYJ zN=(@K@ta|;9G|c$y)Am9Xqx-B=v#~gQB*r`TsR4%j*aEFsASIwQf(6(8)HzU7G2bA zbQ}$3*N1GdPJa}}Js@BA7Da+9Z0e5GtgU=$0S5c(B<+a7E z%oXW1>pM-}+X@MYddpNS0}ue`EmLPKPvXZiRC;?VI;sV$ztA(h!x=SbfBS@(VRq9h z#>1y!?4X7EE-?uUt(Pc0D1b6wap$Y1Nc#a+4PY2$1wJkllOnhU>QhW#x~pg zBeu@WrkG)y?FpSY`5;uEuUsMLoQ0iveW+#*Z`}Ap~?lUS-H**U=rwo=p z)pIjm#wm+HXRI?K;x8-@z_k$&Y@UtaX*1^92-Cb}>dnQSOptYPbB^{)Sr`1M^zQQ; z0&EsK7=huVz=IK2OY`QBo&e~djqiE^S6AFvNKPoy^#<(3M!Kvx?7~$MMNuO*ikjO_ zv-s9R)27P`-U*#J9gHj{W*~-B%!~rpSbVk+cEps=V5e}V9EdDgYw`n<5}-)n_5(wN zD1!m@ydo8*8Su^EDOT9o2x`#Y_BFvV)Lm;0HHhDuy33E;J|-EA-amJGXYce?khGx} zMAp>#F0#CaqD67Ppj$R(#-cz8E3_#13DD6k71Z~i!g9m3baYFlf&86nGIYq?@`#~D zd30;hN6~oN9sW;zs(f^d$C;+T@*TEV+MQ}Lu)N36XuZ>!Y?vg7&%l`;i*r5`KRrE} zz4%mW_H$~eIAkiYc}r;Sat?UC?GdOg0F}|aqgOk#G1h3;(SycR+F2q)8Px;|;1DNA z%;3_I1uDVW@9X27H4~GAi@K5tZnY;^GafOU>l+W!h*GWHzDOr#d&jL^v8da)syh%Z z7E@fja%r?;xX~HH3seR>=nos z#2`Fw9XjWr&PX8j?w-bTP*)@ZAkx*8r0yTzGBDg4f`AA<1Pj^Mg!vfX>qo^an)hdP z_pwwRh`LvaLT|5RR26hEzR`@jBB6x;NYq2khppA7N@4DS+@q#qya9)iN22tZtf%;A zDou0$k9uMgITPb9n(muO8GzXzd8Dc#SWtTDCs zI#aWiRV}^}MwFY@p5t4VN&RT8B(x$1p%IY&-7pqsg&VSCSydl_e!V$R@zUKg-T-lv zP<;8p&Gq)!sAxs0#FiJnxFdy|O82_RL?1-p_a1)iYjaXShkE(=NG z&p}gEe$eYJ_)%V>Y59AXuZm=aQY3hUA@FFZ-2meNwg6l(RAtkN+KthA7akjjm%&>T z?PzstNJP_x84+oPDvNKDd%%*io9PFnRrEcCtXiG+5-@EvO{`r^O0xL<3P^oK>Y@1L z`mSiC6AeRs+8FS+-Wlk-{PN5DkooIDn+|q{n(#XOKm>LH9L`6r+5cQT&3gvEC0|?8 z2PT7%gvPM1>3QPedDRvMPSomAK~pg_+qWFHTFSBa;%T2WYz3E27hMcAf8e0WOD}0^ zq)nh!co@e&?Ce>VRw(UEoJ7K8U1Fitf! zpEo%f`lZV0{iiL@=0R|$g$PQB6aPXU3U?AjLNQKTR(NdqN_HBiZDLu}c^B#DU#@`G zbq`E_=@(538#^(Q=f_w0_~k!lc^!)aTeeS7ykTpntnPIzl+uI}P`G0vW$5HTX8BGQ zgAh7}$n}SLD4blg+_1~=KFvZ2fEa6Pd3MsBiN0D;G;@1IWMHNVg zg#0w!Zqd2kp`87iab8H{kc!*Q0BRJE+sRmr2;I&97(`{hg^{{N@Tunyl=c$4NF5qF zj6=gXIi$=USP#3Ctc8U9p2eLUG7bj`$My89>Kn&L8}3WPmB!Ha-!VWIGr3^f-R2T8 z;tso@-3%P85h{QI_gb@&B^aG_ez3!szdgbsdf%A!ZlTZNHy z3mAo$r8%i3J9b9nC7aGTTp?zb-PGJCik{CIg|W@_J8C3(J_lpRhFvSkW1*T^1NzD` zSQ3D=No&EBFAWoQ9ZUDdGGN~Toj8-hByM~iH1TrhrlJ&Dz;7=|zNvbzG06KB2z#u*1GsUDYP=t4EA?%0+%dk^83+&P_)a0Hm z71oN~PIKV&;5k-M-4661CB7Bn6Ok=eQ$$&%Nv2i=H?faZ@J0oWbXiMz6IfN%f!jIye@&%dvKS^w5S5S z0jA7Z8EOeol+I7n?H8pxGDN>+MC&vzsc7BxK$S|-x?jNnGFtZs_>>i`ORXXmwL3Zl zEhBoT77N(cuK{?dLqno>=Vv_FYa6;HUhAFufwg|w?O*Io!q)fZB0~#V7Gv$o`Wkrt zgywmv>wW_Ktb+(byknmb^@_#@+Ip|>jK|&`knE~&)PV;VYIbb{%Ahmy9TjMYInDRyY(JmbYXYv zgH9)VNwMx0!sAwpvNh>hqIV{cc9rehkq3{vm1-f&-S&6C*L&Vw36+YwTbjc0XK|QH z?v{5j+ud4xZ2{T$2l)1LR*5FW_gF%hTGQNmav#n)I&jJrs+t~wnR6D1S{LMl`3b$F z`CzWZ8mCpzOuAEM0yHiuAMEWwl}bL?tbbKL*go(n(+6`W%KKnWYr_XqD+uiIcaSKC z_+YmxA1ty3&6aajGZEowsNtwJCN4pu;EcM9wXfaS*xJ`P65uN?DMWR0RF1|@;f~7DtAf^xidTj<*P=5}2nq5fPl8UI zCO3RZ#FsOM3}14QXga07 ze7MVaea|NRkS7%+K#hQ=vh#V>`aa=s`2E`85i z@RRU8#i#A(dk&1Z8+3DH@$_DePw(lWD|nnEUXN1`UFwLH?%scXg8w$~ME?!gZtl}T ziNDV}o$Sq>^+XXKw|11pO`hn-6G*)Wc8$cJW^~#K?K6Lr{-^nsR>0p($Wq+()Fh1` z#9>_5b9XYduWBAq{~wwh3?d$u3({*CREiES6({#Ph6eP zVh}>75V^jLhr*q>V!2_TxEf`lgmPoLPF#7J;y-cqau$&Qrr1_vo&vO6n{=WrRlHsL zBcUv9jpVkqPh5Go3p==Ybn3*F-p5>P#_xFa88(mJ~n z!*h@^;)u!|f>_N*$x;Z3Bd#oR5=#rZ3M{HXN!4NWx_Kmc-59aAUDLbwSQ zev#>yg~(2kou6Z;@W{@#I+8W(-#8oARJ|xdbR=sx=;S$)gG|V10D0sUhN=HZ z)~RK{KDz*M<9=vd;7HbLXkM1M*+;ToR0hpZ>SiCwy0Q$|CUoL#2~%{7Qg>qo>Si9v zdSw|bC2_$wvyNopx2EQR-&04jJZ%nkuXR^Xmgp_g?UijkCtD;G`@zcQSbk z3v*#ps#p7|Xqum62uS~Y#GzNV!bAA91APcPh3`P~=tx$!A;YxL47jV%R4GP(Cv*yA z0Ae-83@A`A`29lI5hK2Xox&Nhzi?wT8<@OKs;TC~Z-Qr9LDBS56A04jzY;v;g_tDc z7XeLaX(E{mNd~VQsB%zQnf^qKYcNsvMtK?jPBp2{nG;&Lnab?V;!ol}iPvq5Punkh zbE24+IsTynk#ST@qw7XGYO!^l_Y_}{_Z(ojxitpmZO(E! z*-MMf+aNq{)u@mLR=!qULhpw>>5cZ6&DqkR)Fan34HOM{|)eiCoLXy4*M1(*@_)99q4 zekTE8Dn~{c747O;mJ+-EOrWa6Buud zVn9p_Eh7&Wnkrf4UxQAZW;7gT#EP>o42StMqG`UvT){f<=dG;kN&!(Y0_v z7!>IDLnwD040CR4tN~8|;D5yZ=;B$rRLPl<1nt9*O5VPMvSL^ zHOTtZ<{y$ruHYaGypUn7C0awY9Q>(_bL?5g+IL1%h8@ zQDAGV2ueCxnl2E0h=o#`P*n>Ay>#*y2>us~K?t2fB>ay&6i&ifZeT`LD}*_pvNt_@ z{|e>CbQK7Cnc^=HoX;XMRZLmJLkVDtU0Hp#Qq?oAHkfh}4~0{qM6nP7JDrCTfQxsz z&rzF`7P1RjNTEXJ-Z0xcj5kOpE7TlHGTLrT-tK6(HnAd0PSlKE2g@4Ddh{;8L_U+A zGMm%pa%#KZ+vutU$@)&SU^B~tY}7i?FL2|36%T@wT7nWHwKwumIH{FTjE(=G)W(lq zi6nE_uKyl(Hl_@0+g<;iKDPOH{eNRoU==4p@u~smSil!qD5VKib=UXO$-nD=o5di6 zP9fs`QyvN@-YhrlUH|tilu&L=*RJnnihtMN`_r8HGF42O$3qEVO31Fin1{mYPoh|e zfSt%g3Bbj>+-C{RsrQ@HSTLm}OoFMfu}ezXTXpX47ed!{EW&Ich<3kc?yFzv?aeqv zZRqexll4j-%4!&*ZW0#*{U^bfkbx<%$8O=Fa56$rE-`VDOr!jWD=2@%!y0li>OHwL zF+SdEcLzHg>+SAKCR$y1ll}%o^kNfHo5dzg($*N?);_`GjT|{S{X!v4|8l}148GsS zQpv=wn4KZOR9H^$f_bIPL%*HzNfrfGRTC61r96*JeTjusnpo3$eXW;{{w?o2EOr5O zBVJ{|MUX82&8n^;)CJ1lhSlOl}jNrM*XR!b44LS z(IKyALMP85FZ|k+bWbqCI{DPwLy$z7jP#eD+Xc>e{K}zYUgwIrWj8e~je;c+@r5w9 zS+$P((^~~031lIgdCV&=gCzk-+ZGl~{$aD1mI1sOI&t+KCVArx(73=sudAW?l#}=G z%3v8tUgi|tyUKvQ89GfDac`|a-0V|ypDcrBD0MOVLyBv6I}&tn8L(fPM(Td00(CP_ z(LGiMOONWwX5X(WK*-ZQ2PAn8m0BTQrhm{Xf5x5m7Lu*U(O4pt|L19B?Cvn3(mLs8 zJb5fjL9B9`ag=yY9^)BO1CdkZK30QJoRLacYN4-~CB+CPg7dowgaU`xp8Ye&(Kg^eQ&L30J z>010} z4KmPPA~=S+Ypsz>#BWXA7Yn|TNi=zsXHuQqXu49npH54t1F+sO%%y8M$ zqCg2Nv?%xq(ES%Gy6-<4<(gA;o=Rni{GH(CEYOhLc`E!}o~ODCkdo)A#HY&Vsd$`e z`lo%=7E8NRO-7ja7#gj2I+G2P1o0VoQ^)-{=QHus1Ig^gr&6<@Q$xieGltDuR1zRB z-8l!`-}VTUBY?_i-qBlhPHU(>iZPqB8l&UzBuP!o9-QJx9rju>*?X$`-0w7Zj(UkH z!SU&2T3hXD)tYy!FD^X_c06aaT4$&UZ>0%v z-#<8tbM8MM{{a+w{$CF_(7H@8=H z7){huOA>Wu6{4P;+Til`ShY>M^sGA4++KwdG!P;&iHH}?q>)nv!tuu5{PM$r!SG%!6l^-5D2oK3kj5a#Ul_{|t z4Upx+0GaIV0Zm7SC*!$*lK+WEJ)Kk`;iF(h6)z-g&W;}jWCTcAMR+p+7k|EbGXA#u z37pO5=bH->qXabZ56Nl^sRf*eFD-)6Jpgu?Fir<9Z>^8P1-M*@at(~uIn=~(n{S1g zSZ1r4gXtZZF<5;063v|WLpX-Ck!DMf27ucg0FI>=UkM{gmv7JUEz6`;ZP`lbgAYO@ zAjbz_EN&As_-Vx?J_-GLb5KUWivbakP<&-Jo9ped$s6Kp0A4JZbS-{DS&6U1i7NbX zQYXxSNiEpn%xRz#GL`cUaP}esvLL<>nxX{^z21o*<+WW_1oP>uqNa3f1>G>a8;!Q= z!)WH?%8E9$TN@*&G*u2~QZ!nkr`A-VTt=#|T_A-9ea=QCn za@mB*DHR_41?cW6JixCrwXxg;tt@z-Ma7hq( zXF;dw+9mdau}hOTtDguQIyywe`{KtU5KZovd$Een^IZ$_0*}X%bn4J*3>#N zv+Sl-RMvVJJ7`Tw@`S0ZtIA+W04k}h>&pOs)ijd#HC4!)rLt}*gJmM#mdbLa+o!TT zZB9g$ReUw;73z)|q^(xxFsit=n$T)j99lxKAfJG%_yqAhEc+ zs95l$-YZLNe-~ieQvn->`tpLpRAT$XfKjP{O+`0V^s96Y)pItqMu!{i!PbUB`KdG5 zZKquXo^LxI(aDn{rQSoL#bJJnYjq27CUoI;r#3=TUNf{EE>V!iJ< zG-HRW5w$R`TA+yQG^zl@kPcQ-jn~_q#-Pjx!7%Gvtx>4lx~M(TSQ=pfYY_AmmTA$| z%lOq&EK>7b9iDRsv(Q1crY_+*lxMiiRq>7VazFI*wz9EJoLZAB?s;m`cW08OvuA)f zB^5}$*Y98wLG0EyYp$LOiIp3fF8-OqLFe|SW-u+2$0u^-yAnOS3}`v@;~ZbJ4Colq z)+hryBzsA_#LI0ux5qWnh@M>%(KD+cdT@q*aa3Sr@g; zCUbkfpEN=*D~ZtN!U$y>Na+$2t%u{M;RHp^r+t~*!jMhI6AA>|({mH@O)MGA?6u_= z=RM0-!~;q>##?v(ABP zjtJ^FgawX~J^2Z|Nu5Ne1p3nG%0>gtHWB?B9@(&AWC$|&TcU3Lilpvi>IT$$<$gj) zIU2SVW-cg{X{v5{3U-p!E%#}HOluj&V}<5PWf+fQrv))h7k21)znQwgit^G{QO+r* z$%D}V42wsyKxY^#+{Tba#86?#!?jtu*g|M~=iaM*%n{{wFt=xask!loLRgYN{~PEe ziXKvFGW^By=a&^jNKefjD|?$r1Z95wYcVxmrpS**UIqHm-wha*{AeYfi4=fGXJ3l; zCp&I~ZdQM^W&-Z+Yt}cxB^(hRcR^N@L);$?pcz9#AbtTi>>~JTEs}O!-vF3%^^LBd zc1aW5X*j|J(Ia8*iFHn1oUHUR!u}FOpU*C&(QQl0Iu%X+pRDY8$>_2=pfc7PZuD)c zk4`j1O^`fH(oxd*|7Q|t0YCa~d$I6RYiq(;ur(-A%M)TcuBUbqQ!?!}MMw6S7q?G= zDa$i^EAf+f!A*QBb!Jb5Xq2|Z$j2?}uuNW^uybzjL{fQ015HoM3pD8gv!hFI-|?bL z=Ct!dN_S_NVtR}k1&gMt}aTM0Xgg;uVFez0fT4*>XIPP>K& z!94&#P@);yJnYR#D$C%LM&z|T6z+0&3B`CoB`JgSJHX;+4f!8f$fm7c$oUmexI4^q zJlvZEhwSY#J5(lVVDEJ1)Xh-Y6=GyV5D)e!JG9tRBDuHGP)Virou=w%S*m6u@@X-- zAi=z!2f+y@K?xDe@A6PM!IV%8!R!MQ5zen`+6D>eFWDKGT;8Sv`d^Y$AvE0m3!D+i zo*XAAwxaUCPxd4p3MUT*a9PMh;pBm!q{}fND(BV{FJr-!X8M!SpmALc#&$FF?(eSuQV zSS0(HofX3Nmm2Z!@QC+;ne0B3)O-SBAP+;oKsEC-9t5Xm2ug^W`2!DylNJfZpx|6T z!6l_LG!J$$e22a-a^^*O%_G26&^)tYUMar$pCLMoMS*=jhoJba3KUO+QcGDdVbOhz+JggGdn4E&mVpHJKULN1p zzJEmrpyLe~7@79sn7zL=E!M>}7RSti83)wOsp1$vMYkG3+q_Iw@f&S=hv#NwGAd&9 zY*Q66=Yl*`s)%_y5KdOaoD82l6)~Q)iYkL~uhmpl%SMW6$s{E4#jQC?a>2O2fTDX~ zD1I+R@|vAhKQUGNQl!wOWN+=itO{NUNwLC$_52#LSRm%$s&6BEHo{yc9 z>7w19SJiT=O3+|M3!dId{baJ5Sx`gLY)3k_-pJq9B6oQ!;y2Y-{H6Xh}dAHkd>B-sShi{~xQisV-W)ySoj~WJ~mA$OuL2x2SP(noTJRS-sf)a`;f}rRH$udL` zf7T?dvye?b785~)QXxgLPH@Ox4|)77DT32ckM$~+s@aIVLZBTam^bnuIKd<+A%gi% z9ttOz5{e<1#|Ut}?0W90-TB%ksi4~3J50=PWJL*e9s zp!oACqDW6`rC+mPN;7?`>#-zCw%*BG+;(ddmGnl*x3wen+SH97MuWx^sb5yYqW5ni z^0igXule^(iyW0r?5~=X(+bcR@7!*I{7OC zE?_YTp;L&?9OR*JdWPf1KBmuVSV0?EaHZLDc&^`EWef5$O@#sN!hu(?_ysVH*F+d5 zeg~veAQI+RLt9h1mgd51;C-~iVY-Xp-%;>yG5lMyZc@m7u?HJ^PYaKZWaPQ@v{QMm zt)NXS<+6`=g7+ib(ov^I!R={Bm{V} zUEbj@DF^mV=;Y6V;V(`O?D!Iy9Ycq^BWA0t zL}KR0Ul$X!{Y+Q5C;^5{%Zu+*0_@I!Q7HkY$0#HT7r zCW%s&B-3-VH$UT&z_5JN%EU$sHzEumnW-mfM{qaq-Bk);=!I)nM_786^%g7o+lyC< zG|#oLMBzq|{?$d&J@hWD+*6F(^^OYSj9T}Bt@RQ*nO#DBF6hLhZ}0Yw>PC@YH>S15t(8su5+NDn?NzG3NzAk zRzO=j(xU}AJ`*SCiS(?fzNj+-Kd2=Pqic+%kcl%F&qx(M?``O$DlT#?i0j1D{qdi_ zVliP|WP%bB|9JxoC6r$7^FF<*89y(b{PCY#Sqwtx6cYdWC=Z2;|8U&MivMh7!Ifsq z^u~X@OiOHP>)^;YSp24nX+Pwl1TZZm(eW!D3YX|0iiHT^pLr+&xOmlpdmdn)`$Bz! zLi)4v!4XL*+g&i10qtNa>gV5*ra9^d71nUA`)YV*@+|QNWq+9MX}koAfq*+@+)`tZ z3IHApqEIOScpNZU1^@@(lP3TeXa}oUAcWUSAZ~;OmDvDJ<#8nEAz{I(yStJ6{;3;K z+ia%>uc#ypv|uN72!MUhCTzW7&e{|{A$mz6vQnJ$BJ9LIA!=P*`6|=vh-yjU?nMwo zk{1)M6Yq!>y8h95(*hk|{%%C+)7o)T`>sopUi(Wefun^;MUm1bbP|zL`@J#z+6s7W z-F)s6!J1kMeox)w>uGb@G%Io~GA{6J!!|Jr=En`diW3=ZO1UB2=<>qylpDH0G|k_c z=R9BJR+0;DlfN}qM}5U6d$w-IsnVW&1a=DFlMls!&q!;m-rj=wAbi}tF|6`CYK8KR z^n{;LXu=``GCw{ZIt8);ahqZ`>@C?K&J-zht?x8;7Z$>f*l|8~3TMZWGXJMz^;SM@ zsfhW@5J1giD&V>l0~is!X7H>l>_7@^&?Yo2xQIGttuash*3>b6^kzBn$!ncn*-NAf zb`oky$u*qnONKw_P8)5_0E*6YUZH-ttt3PNO|m-w35K zP!&VTbja0X%6@6&HXg5cI-6VVVNc^F!X~N3w=Xg-eLimOibdVVRo#JTv7iw?xwm4t z(HR=-j9f9;8Ltlk+@wjgc;!km8PGnELZPji!$AV9eK#a}zQpNdZ@cV~2ZYBd0Tp@v zFklRtXh8z0_vtCm>JuaI(Cc#J^I%iPo8i4AkUC%>KBxl5aUy%-l&sOA-}tOLuW{sg zQs!}+_aEM>)3 z`UgFsb8;rcJ&LH=X--JLH+Tb4a{I45x$ummj0>5miQ_F8HZ*Uue6pv5;K0y}$Fml2c@U3MxDg_DH>xSY>J;beiJ_;s0co#bUKm{5kN%J1^a zM;PTL=WnZ{+*KSRA6K!+vhqQzIONXJSMyL-@0-3hJU$7&1m#*lS4{FyIQbwb;dhR{ zi-%R>&QUo9o5iNE729zb_cnjWQJph)oTP!?aqi#=l6f=yze2x2>-oz(2u{lol#mti z5D$fuA_=APj`LG?2Bu7GvmNKhl1m}VQ5P=a=x z#VnXmhEMH|Bj<0cqwF20!1`LnBFoALK?&J$&f}qQJ5B*y*6~m{`5-9aJI<9ntP(qp zoPy0_Q`piw4&T;3QQ?g`#al}rT0e1cV{3R~w9#3v0(i^a2%;yNIN95y4UaPqPsZnh zW8*JU)$??70r69zQ}H6z=ImHJPL3dDh3ZYfIx&M+PsZN{0*KELn-CW%s~92JI)^|H z3=6}4n0uUj-l_FY1C9|5s0Zc;E|;$cUrzh`+}<2&VkCUu;RunH9_<~NF<5;05*-PT z{}IQK5zE;Uqygal4glLLti@NtNV1S^&+#qGJjoIa*$hG>AjfSm7MJBR_-So~AA^3n za!W+P}08{%sKUM!e&Eq)S=yACI+@Jr%I3wDKoIFJ_QfJ+DH3 zVMDLC;YT5#rJn#^HaG}xrFRDht%Ia%oVYzbsSUZOBh+&5ciZ%Y(0;{ZBy%dK=qQvXm-zU8(svgU1?MW$|4ZIL z{%3ytr-aqMgk84b`a9?s=zi|`RjK{_lE|L-A}As5(_9`3XHrTiY4=kn%B=04p2V0d z4?5}j8i>}eTRC}y8?ceQQAUzV;2a6l3JiL#U@>4_41yBkf`ku+>uTY7UW+1HQ&uC>&jBHHU=O4&$M4 zp|t`!V<`_M0GII4+5iu$L}*PSYO~lBxMDkxO1F4w6{jbeb0JTV%w*1a&@XW3sq-K> zO+!#ZRz!=3!by>YQhDcj1v>*%CbsF$bB*Lw2o2xFV!-Y^1SMqWc{dM*lZOJhe1wO> z$pb+N+Ij9|!Gtn>>USQAgRPdbcb)?4>{~3ttc(zpke%m0c_`e@QvjFW@=!P#At>QH z&+cDmckB{7kDP+dVpHJKI}hL1PU`50TKsE_xX5d=wr-!KPH$dj*fZlsVm-@FS$v8lxTY&BjKzj!89nIq^mjlkZnGAX7D*4mk|4vTw?) zk&XB^NgWX5Bri(^V-fhIENrGGFU(~I{a1=&e94lKz zs#ZUO%F<1ZcE7wxR$7DhH5=Zlcgo*+f72WqDug**x-kfy{MQrXFXpKis3TsAH{%9l zr)TC4m94`P*_j`|Sj@~$Ah=>iXU~y+dHFFqdwy2HsB~&hNo*n*?!Cm9?gg6EBL~@6 z6sH;|mBv8Xz6tsZ-s)^eT_80pJ*hKNs=M$z`smF~7ov7fkeBMOJcxY*c!_ZeqUtUn zlIrF!(R#Ph>0*sZV{{PoX$Nj+2+UCTXJ@E=qh@BSrA5NsZTyTi zPMW;m2cRaANDe~MX+|UO`V?O`wa@#1)SCA$R_OTKfm*y7Zqq=`?l3L42rAoUmo%`ovT5R&-rrXR@3Yawwzl`D*Khm) z@@e~ee@6wW!wgSQqmuFj{|!*9U4uV`XL-Ij<&$ml}Nc390Fj{H>fD=kc& zLO79o+Ja7=J0bCF(>L{O8TMs`$>suHtaD=UdS|R`6^lYnH$lEi%qzR8x#<+W3Gy{C zws|iNswH_7B$m43B=eG_o`f`}`{TswOX78&Uo^qL zUTA7`XWRpVG&~kWaKxez!Fi5T_(Um7Re;BLBCl0#i2hEs_#a@ZJ?7FO{9Ssi|BIi5 z$0|Nm@L0*!D|>AZ>Dl#L2J7uBI)QHL;%qlns%;vsf`58u%5JenuA!Wgi;WW>h|&*g zz^<__?Xd1^jiWpv=UXk^2R+CwJl;ipQqs3~@6PR_Iy7^A)5U?@aDCQ=sebz2MC6`m zZ~CzNI~^4JQr~L^E=`zF%$u!2zd&zxfCs^Ovjio?n>~w%!g;e2is8-f=cBX7Ou^eZ zoC_OY#7@KX4^1m0b}D*P>FD4GWpe7FF7~m_|DenmiwRqUO;Eh~d&hvgnuQWdui_8N zl%bRVL76wO7=+L%M7-a@L*c}`05?9sLfNsn;eRP+D~mw@H*8BMJNzS+hTYmEkQx3t z5+>yamfW^>_($)J@gl@%`-XoGcp9v*iH(i1ZfB|RA-qAK=)CrDLtMr; z(jhk-EJaA!!j+05TLOQfe?JH{1uAm_!+G*4iEFZh%tqTA|4XD)J_7IK$VA$%XC8t~ z{ZY$Qx};(%!%?k$>5N%;2b4#~20p0PzefStm( zC{K`~e;`Q1V?p6t#G(+vd5%-~Rv8z{%Hlgw_*PlD{!TTyPMPp6 zYDpQs-S;6>fV;#0iBH=ve7iE!ZVn9P9v=|Obxrcjux{_6T_ntz#yIcRjPtVHE_X1u zs7g6Mlrb0Oic2QnG-o%c--Q3+BCZ(~SMxGiuA-q#3%%|ag9w{i++NIlV0%&0cUR`P zb2-K$Nq6L?V3Ch)6tJF-s;rd>&5Omc2cTbI9Qzy|1Q*99C?SEq7x7TIK%azS#Icja zxyO3}v&6BZM_I_GqiC6LPUw2dL$OW4A$$F0hvg&67iWIA0Z}cD^pj}$YVwh271i<1&m4_vl7}wHr(@Kyk+qRf)AZ39d*?Gi^EcuvsyCR+1&zDbcUk1-T#P}5=(tw$P1-VIb=b4se?^iG|x!mxHyldB~ z-p52rX=VFMElbz4vc$X2f1UL0-Ls1XO9bQGlCb?GK^4U%Nwr_>``Ik?+AHan>xi`796s*bha}o zX<#c@bLys3{P&)b-L|&#q1SBuW~A2kbv_obnl8iN&?uz*jq3oVO8&-QU;ycF%=wnz z->?;_axoUNh!|dlB06ltuR!_-dKD4pRe)kj9EtpfTI1{wD4J%aEup3yCC1-^T~5;j zBlaOWfEG>rKvP-WabzKalM{3}b_!3O9h>Yn_E{qk62Il^b99Uiit=v8H(G#BE`$%c zIVVCVPYnltZ3?3&3L0EwaIP~JFW6MUakiLOc2jf9C|bdBK8$S^8K83UR&XT5v9i=I zZG2g3Pn!kkv1IdI^U>{_z4;`HV19gD4!y7`d4VXxdCmr%GdfH(%?~`xdA{(DW4!Bn|(M)(ke zjrMpIJjXLqW{5p>4gVaGZ+kaJ>IQ+DCyg~Z|8O^U8=c`<=zH6T(2_qo9R-{mK_xz)SsIEk0&%N=1l%K^b2$* zcYB0mF3P$`2nj}1igv~u zLn9kTh9+<5?FG+9fdvgOYE6olkC=xS&Jdh%vcCS~S(mXWuxo{&q)To+H32M??Iy8a zI{A-hy`04$giawk!o8l&VFvZvxXkToh}lo@YL5pNmdF^Jpinb;i-q=lP?|anq(?Kb$Fg-xMUJ=5D)Ju zRSpdK25R-d5Y-Y9qUwUnsZC>yIMgE`oABq5CxFfw%TC{e|YGhc2tWbpLZX9u6ry*h++O3V=LrKaiCWl=8sYR*p z+furfYnpBPpeRxJYBqH8gs<>x)8X-$Ho@Vmh0a*~yeNEisF+uFQ`1N-8ooLl#x}!O zsC>NPtAsdK_{yb?FMQ=`(~se+0wSOp>kgK^0VO(Oe!P1Q0kJ8CS5USC!z;fOO{XND z^}<48LCf%B>=eEX4?&t6iwpEOYIInBNrr)IqFE3Znk+@Qt_WuV;#G(RybMr;OQ}?) z5%^9N;ZmEVzf&zf0jA1DxbSxw;kpq&i3peYwEZGn%i$9AhP;v{FuHYQc63XRl^NOU zeQD->WtvgW>LZ$NyY?|n(%U5fwCS&L1A8{3?x zf^9XUUj6`@M8L6t_aZz?kCKco1BH3PB0+ z{~zU{aQ?r9V#E~pvdQT&`@q^U8fkJq&d$PgWK7d7H@>(iKy_3J9Q?Q7roGIw9;=~to*tJNQz)d-}5v+o9k zDg|f11dNiw*$3d0FF0$O&?+#SE`iiY74JjWOls))DaO9HHNDx6I^{Ezk z=I>gwJRH0%l3>b$_&p>YFx>~Kzc);o9~d!@6DbXNzCLuM=lSzO^Q7>|Pq9-nUEI<0 zP8i8s3e@2uVWD7T5}8JiP00gA1CcPq67!HbR+M9R&-gB9qL_Ng2va@*i1`l_;V-7g z2KMQR81*TRil)6gX0}dAWMqE)Cox4^vANh#zzx|H814CwfKe&hqa-sCfYdRfw+f<| z7AR6Gu`gA0TC}pbZ*=KfV;QX^2iB=G9MpSE&5$Z%+czJ9>g~u=)B>`+kPOq2B~l`I zWJ$3qPY5U^r&OfLSz9Lak1U-5Q!i-E z6F!`_F6rCb1-axz)n*dSn^~m*Dzflv&>osHaSMsGea+S*@&zj6-BHplh1nf2(B_>!`2Aw{i47?@c=mUB4kIFEgL^(RDSf9UD)V~WE3htxSVxl zsNRLw=ps;qBkk50-q#v|IvlC5ABBLqT5Sb;>6Q3qnwiS#@OBFASTDp*AYFjjjR|Ia zPuj5*Az;UngTNk9bjSK2fRsDdhwziwvBak;J61BAX4!J-lPAXE^<20Jx5TE!JR;~D zHFMvR>xDaXJCs_LJ^(f8KN*kFChv-hDr)y<>)p=uF7Xr}3?;h$AGL&jktED7q5NL) zxuoyT{)&{JfWxI!vTB+fKjExys_u21|faGP7BQFEPFd1_X3#p&z@ zn%mz?I94qC@(A<`3{?M|2f+pS2uetR?@v4wF2EmEe0##Q z!YjHZ4eYJK^qQ63^LyBXzA1QbWK>du>yvXva8>h6!A%-y!9A9xdUj-bsUS;GWO^kJ zf)iYV5+b2xA%*8)SBv+;ANIXF?ae$IDPD!Bp2o%h#u1&x&L?}x>Mx-qu7ZpY`kyQ zZo8@47I|)<7JoJMo$X|vn`Nrmg~`g^i#D{{LPlk`sN1d&T?wZ%BJc{}5-D$4a<;KY z>5c3LT2vn>L^3K}z7INiN|*6#Ga=x~^aqzN|JWJJ-W<%G3YQR-F8@%>E4!(=sTD0< z{!bX&EL}#m=Pg}Mh+~y5yR`9@E_>Q6#fW~ekZ88LLuK!Pi3XYsPI*z^IAdr-k& z5KW7(0%g|Ot04JyDpr9StcYp3;QO}ZW{VKgfL6gg=;T=i`1Mq+g5#XA_<7MPST5$3 z-PBwK@t=T^1s=IL0mcqm1qpGiRp8Rbw+cLM#41pH%~h3p6}UqMt%A8Zt=9ceH>4ULLmYk!N#waM)(qGbaixYYpfBSBK|``$@um~+FI%zw|2#% zZsV%%K(tuQc=5`m(Td?lX9)A!gPrmE5ZoJ|G>I0kTnXndMFtF>z?O{B%lZAl1(Tg| zh_n4sr<1K0W6s$|c-%sy2ub{5z!>(#+Y(5Rw4}wKp2yXfl5>!NV6ItTi8MK5Q)(6)3vLqCxxx97ayz(PRp< z)!cx`p#0UJ8u)`bz<=KSg%|kuGlA>a?J)(USyD(xY76%@Z`s(#1gvOpf2k?(Un~W( z!y^9){Q~2&f8;@MVJ?CavhwCUYA@FUD^Ef(!d&w9hm`7(y29gUfNZ(9Kg?sNV`_iP zK+1dQApiD<2SM>0w?CYV8`KH%i1$G-rxefpH$N<6r_UaqCn(;VA7&vkL7< zj-CBfapHA6lmJfbZA#;I_51Hrn`EW^!Bo#o16UXJ$l za%o>r_V#EuHjE5U#t*?f{izo{AJ<)t-wBmX~~dt>IFv`XC(TU7qHsOzXb2(4!K^e2@Vx6v<&NXtM3W^L)Cam_wxmerq4bU~^ zxBG3wckxg--+`cn*txg!P&nIALTS$ZKY5aC#E~bhR*+DpnUibFs=%<;De>!Z46&AV z@AxYCvbaSkEebRWdyG<*w&K47ge2J7^J!12%ZcxYmarKLBT`Kkw)dC9*R;K-OKvic zPT;OesTehY+9Ndjn7^S^%wEYp3`Ov`U9&X|8>|l6lfHKc$=qIhliPetO6L{&)6>m6`LrBp?~>{5uo5FqVd=ck0coL<&S3fnt&k693Ci1fnndwj97ZOp zbgpR4l!_*K&pMsdCx=HFr{8q3^ep^Me2ZBO@rTBF8H;mv%xnqtOIa-b>p7mqgWxO{ zf)Zk}JeP;USu7HYksX5Q6;UiB6(oMwL|n_lHvK|71Te!40mP{r+2>{IG4>W2j1d_5 zA+fLH&Ph3hy(r9ve9*E|$X!a068$Dl3-a7oVs`|B%sD4dKCl<=hI>v>oulAdx3Hj7Px zOIu@nTRZ9L^tA0v!iPiH#^vXM&SolB!UANCiK2Pl5(J;V78BHstaTTotoJTI{ELD z!(Yt!Iz&HKid)h|zDh_-QH-?6xPxcw*+gXK$Fs#;d9>)z26Byy(BY_bXyb9wlpmE2 zZ74xaW8FbK z{m~u~k_B&{cDs%C7zFscLro|K2}z$E=hi3W51W}#k$W#!uW%)8>-j(ek{N`qSP{;v zsUu@u=~mY412j{dxEOV$IVf?_bvoHgfb}O39w+(AbfY6Q%>+{KwjCkWmCto?#2xlC zoys^Oq?1f;gf!Kf=!S$izIp{d-JuB^UysAM>5hJB8*rI8Q+TH?pK&vbRJJ?(Hs}|a z&-fq@f(vF4ln|%;4ju~Us7feCAh>8g<0~v|(-14 z=|TU!7}>~Y?BkJHooAavzp7MQ^0!`czh()WEuFs*GYLvl{DlX>Nhd)GkoT7E@TrLN-}hNH(j+6z0RU+?YZhKZ{5q-`0-fc$Kpq$JtN6er#9@{_v;s z>hW`@hXIvSLZ=H3IBUe85?aTiz$Q8fikDJO^y^9%%65}fFP;1eq3c)-Lg*BtOJ2uA z;dBYh4G?T2xbQX>N_lP|lnUuNFE{)Np%1ed1aO1bAsA7hh^JqHOn1a{Nw8~_5d+oJ zPQ^fnU{|aZ1HB)JFJqt&!6zL94KcY@RP>l&1dTYUGOxk)Z_w5bc51q4(utE^d>T5( z5S)P+3Y1r`hdUnd$;^?B5XGs(Lz==*hA0pC$>JNsi^f|Z>N4ts2P;Opoj!1;M~B-D z{nqAm4X;h5@3YcwuGb{MwqU1n@_?b=AsoGNWlt8& zzL89OURZmFNE=(yk5Zeu!J%q+X9Y4sMplk8|1+q{hlRh_((3{RWkI-?r0 zggn-5OfGc*z}eI0Sd94=5&^9x+~KmfxI|0LkN3V*@rR$pS;B#~&Pa$6gGlAQRAlp;y~)+oOirew-swkRMTB+r)$Jb)oHqng1D z{MsBVSDq7J4Tf^e-Iq9H@$({S9uxD*ZfZ(%d@?ll9gxJVz+|d?GVVb0AZbpBV@b11 z8=o|L+AKn8&f~o1raMBA0KXuIYAFHcN4<9zNWuJgX27VFox-hw3&Y|BC_DAvqG|qK zHs|>w1Jp^PC+cratABwBn$nsrHVB_~v46%+>@H@VFI~J!+)9OMs`i#>^GLTT_93x; zJ7_}D`c=~mZm-e!Vj(m{255f#`EceS##79ky(Ke5W=>&leW$VeQ6cPzNk70&;Y_L! zz4&AB^eU(xx+^G1`TSOJ3zW-@wT5EGZ%tA6DCV>V-v2-CPTA|D3T{H}7ej64Qqu$o z#Laf!kJ>i4A<$yDS(ntfsPTH2miFU90Q})m`wND6y=Z zQGchJ+^m_a9C0(3N#z# zalE_5%qrXOm`NWV&V|{B@Z^DMxJyr+a?cnmGj-g1+m4W+%$#-Jk-Yz)*haF?c)<4snaDHrxfdc(qROi(4OLqk-sU*T6Y%>?Kav=5!Kms1MwKEL#uC z_l?)LTB88yqV@zF5EQWK2QcOX?xdXJl=>z|(*>o}uXQ@v+JsH1BRo#0I4SjZ0%=E= zSm#LK!5N~d?3v8pwQX}_f_w3dxu#qEcQ}ljG5-PvKlrn&JHrYQ)T|jf)6yps-^UU= zJGb^8==cAz_bp&{6jj3Hoeb{)fe=D2gpeDYOa#I!0va9xG(hAbtl2oZnYqbKJDC~g z-T{JutPcdet`ElNqOgjhF1oC%D2fslTt!6CRoO)W!BufVkQGH;^gpNSRM(@cPgi%} z$prT2`+%OlU3DIH>b&YyRp3hg7kCidS}8#ZS>L#mhr+FINGQfysm>?)Jwi9d^kWvb znPReB!mL9o$7dz~2V&$L)s?!EFL{&htC%bK|0sGkq;h$YxkR$9SNwN#dr`V1`GZy> ze`bdyU9SHiXmHjy{X1@F{fY|&*p(uJ5+c`o^H4asmQW12j`K=>v362TOIXN-rCLBK zv6i<8&j0eFPUV;*$pgzJw;Y3YB zDXgGA$3mVk1$DC+p-=;xgVXo0^s)+ypoA!>pYTvP1(k!AU-MA1rN&lJ^AZY5hoWjS zvft>5`7DoF0re!=Qcyk3W8&z99@@qJSW)i2*2M1q80*8NYN4H>U7!|Pz=Pnl5J3si zLQ8oloIFV=h8CKNsS3e6zn>(3*GzmV3%jr$l3+@BN-q(E6sm}FF#B&}jGP(l>Z zCLRi>h;q;}%0tN(99t1h#r&3W@Ut+gxHf8^H4Z@l7p7xc_^HW5ELu&ma?I?ayx>unuk@uo=6nzAvOgr zneOAiwYN-ov-9J9-hXRIYOD4N)o-OlxLA^KZ_o_l&}E?-$kww%~QPaEomNwu)nUGc25lBjBM@8O|q= zmCBtJT<*d1;GvpXEa_H^66Z!oT-gKp5vb0?WycC$nJW%|7VZS>a36xcn-zHzvDF;l z)|!>tz(~E;y9JJ(zp&m>lPibuzIgd36kCr#IoQb1h5fzt-uS9X11OeQOQw68JqXvh9?J2)TzFE!(-=0I9}&9fTV@@~u|kM> zO2IUVXv(o1KJtz zOQIq8^&NCD3-&6sj4G2*ohDRIqEEA#2o zpcaN-O(ohPrPb|56k`ww9oET%K}1iujRks=eTzPfSZ_roK4S!^cg_`&^3^L1hB{0{ z)Z|Mq=Ku2_3J@lQ|9Wcwr=u(Q`D$zZ>EKeRNtQKzsftZ`Am*I3wMq8zD8B`iWhL9w z_#}=;5luhl_mAsrJ|4H?FN4Gq6gX>*gwM?GD zcph!P(|_B>Kd78-Pp6Ts1=z3~;c=7SDQBA*Lux&*#L_8lTNEUJDmfbXwbsf@VlL$` zeA66`s@RQN_;%hnO$sU7M$ONj3XnO^=qp{*GhKeASf&2dym%?gi}bA1OQ2m~4*7H* z1eY@;C?WaJwLBCqA0(j|Ipm!ZJoP7$?e8>GH?z2yZhEddwF6?ym8NIQ?A`AdBkJg; z)HMXjGuyc^2{RK|M~R*d+1++0>A#B|iFEOPyFfXpJncFj1Sj4EB}BYG%|qeDTS76! zyA3Dl-_D|A3PLUkFMVvvmwn^rKQ`qDED3B`AwlskGKl?~S{M9`1yh_;0!)cTYcHq# z2d6y4k`ThF5DB01xb0dwnuwEdZakcYzTH_Ug@>c;LZ5du{0FBjVkv0XXdKQ%2^fu# z<;0ad6i#;%$3i6QOdd)AE&iGAtP-tb!Gwxd`F^GD1+omlOYyhgD!XQKDcEu_kN> z)3%l6nMv!mbvSMVyb^Jc-{JUomIPLD6BI9}90T_V3#Bll${IK?pZxB|?^y~$_!OeN zran>F-QY$eEhL=Hf-5{M;~Nrs2hH!59L&Yge#MDh@amEZB5)yk$T&%FbmDv$fi1+ za5%qv^HA^TK)ta{rBs$-N@bbIJC2OCrj5Y8-o0b3&OG_>lmZuxd7{8&G6Yto3S8a< zgDVSMTJWR`Tmn;~s@z5G@()V88pSUv0}3lu(M^d5(9hr{>&y0B8eSS0*>69fI@1piV^0<~{d?FW~ zRFd&AY!su5E=pEO#w%p1Se;^*t5akiI_mS<;tE7r8;DBkcwi`$`>M-5{a|gxiT%RIjru9Xf>2 z^^y)~RH~#Vu-2>&r-3$>z=bQ=ctz#hK{)D4+{e-hH~9?KV_)TkMU)o8|8|6&mnP+H!U9$W6S3k)XzMim%L!6#8*AfCz;7)X-J6c`*Wjh|F%RA10P z5Oihz!ODrS?Wo&TdI`Y?x1SP%B+^+m1D_Vwe55Odf2u>^r91=Y(#qvoTD-X6#}q3A_^r zf{U>UN=S@7z(e6;Yzf6!HKmPZnz#O%04E)HIg5em`sK=7mQBZ9B1bBOhwo-7U^Np# z30Voco`=H8Lk?O#!$aZZfuQ(vEiA4@tj_09pVnI-XG~8+yOyNP#tKqT~TMovpXDMoz5DfBA z+9U**@=yv3fm87CRu)XC5VU`3L5{j@pfWXkh@!ZGC76{F((EAx51-|sa0L%J?8jCf z3MV53CA{F_9v)VKf(MC$J;bKKC4CV7Tf5-F8|~Qz4+jRO8vG`7Co3hPy^|+cMwtZW zvZZpB_=171f!g4v(b}eZSFO?PvT!I-N%$Bb?H&|pqN?%_w36p%?$&W$$(zq+sZy5i zG^&ZEyFI}DDz$XC$5U$QZXP`8rMt8|hFYszz!G9C&Z#^FWO?V1uL%B7=HlEu(LXG| zNk2PYjD!4Ly!^&~qosKv5N0OA(mlg?g=BuT7vd@x*ecW>&>q(Xwxe?4NegVtu~CdJ zx|&%FY)2Uh7`4h~?g3Q{2TofnY~+hui)mKkhE~+9cX||7=c105)lP**{$(}%#T-=F z{(K-VtMQZ=)fI^jX0>*NBLy}L)ZsFc{+_XG#^PXc260S9ck$nnI*{yMz^1W53s!4N zfA7&_Vq%&qC|=NqpN|?tY1@Eg%!^!P(yc@+qVuAY1#>jezJ;*Pv4~Q@OL~%|GD~_&;npu0tqt_UH5jnM)brYqJ;ICJ z6+M!ByQlO8y$@^;3wkLyXRYTo$ieV7uWlL|=-uwoW*>1~{Gh9o#K< zyx5{oCT=`;?%wW9tDwx#zd4QUxyS~52#=eB$}9fog~AYhIfm5Qu7$^0lvDXucVf%{ zOE{;M@~hT$KZ&W%za*zQ7CnI7xJz=Uw^dZ7gc^zLU5)Pb!m^Q6ofUte443gnv*2l# z1?g#v-#|NXI_=D(f30nY-*Og(t<5DUA<229VT_DU&ShO9KT5>xY)X7NcZi_`Ic znV>dEPS4^&aLG}E5+bMTc_^HmN+>1dbcBU%4(oOxr-NeT9Fv#2Azbn%kDT(~+8H^o zvbQsGc~6tRc6`R7^l8%X_psfR4COdbI?d0S@lL1h$2o~9*))x5BAfPkP+X<5X&C2p_+s+!?=PpYBl725lu}Oc z575Y;6U1N4lm)o{D=;TmkS>j<+i|+dh$UxU^gDs4ZMRGXil0(?4hN45((qHNv41$A zS4z(*d5y&)k)9jUUYE?5$tf9&N?;o3UB%R_;i9ybQq$%b*wT}o)_NJBEYn&m@kyk$#8a8H zmL#c6TI(3HR&q~NzEbtX#jYuRrKh&Gi;G=TvCc|vea!Y-5-g;SMfM!GqChd4zgoSg z)~s)WDs@$$j-?TB>ni@QvoZn;8H1Zvz%ijsyP8cTys{6pBh5aZ>9DoVbPP&|^*D{} zIn1WR5FR&ml~+sYu=8R_+sD1E=>q2@#8f%9D_JVIPW@eL%8O&#^C!hL-=d4K8#gJY zj>{Y`0hf|%WFQp1CP1t+qz?;~r~f_6p!8J4TcKTG%IsPm1eb~+C?TncPw`N=RD^_L zq#}xyr{Bh6V0ult5)x(0)4wQ3DujpkvJ|j7iJ;giRR56x5AskrdB{P_<2)2j9tcWM z@#ddcFog%b-Nl=dB-?4rn%wr+CMjl~^h#iWRh2%EG3N__mH7Vu!@0ZZ zWb6y=0(Dd;4}z0Pf)X;nR`5_bnUqkHI!ct0Vt88hXZM{gG^<$*%rV}kI_gw8QXxEC z&r-nZD1s8AqXu~>oIK>9e`*`@ zOP;jUrI<&dU7!tlh6lmv41y9O+f#nW8beMVBoxzz=%8A1G{uI%XGYQCUMvRY=;pH_ z2&F{n^zMKbj8q5@m#`GD`hlQ?*pQ=mD4aaxpygy93MUT)CCG-H&4LLX^!D2jNrSCm z(rrkNdA6A)n3WNN5@JJM$3x+4NDf-A=Am#hLQukO$oqI$1#E~!!5(5$;F30k|JGg& z_hxzQ)o|LM(#u@RA=IZ|d#0UYcnixYlfYbRbbL=S{45~t*4vn8!nB1ZgJ!){jb)d-M>m4c*5${HokWaP0^?0y!$E%I= zqq7llxla8UwdaHlThbDhA{mybWGApFWNU%!C8{aUs3oeY_#~F7#8a6isu-KT>(y3_ zzUg8)dBJ64)xHCuw$s`1(3%0q>x}f*8)FdE_kFpwLS9ZL3V^%K!i13G>#AFPoz_|E zB9)vBeOqnpt9^H>7p==^9Vo5qDpqFjCC+#Wow&Bmvjk+U^Z4qc$#EUe^_}@34(5`4 zkdL{@X_RAq2jRKm>r=9{zB4z5)Vg+isFhEXgE3k`c{rAwebPUbMbGIUXic*sCO`iY zk7iwT40hu#@f=@Hbfs(>D>xmpKP)|<-}Iu*RQyf6h2jGFhbD3jOJuskyBgXBhOe*T zL2%&;K?w=H26!l(D=MKF;cMQ?=F3^w<_yc_ag9%9^Ce>B9IcU>rjWd`EuKk`=_8*i zdN!nTKTiE7$U(~vzqh>sXNq$2Kv04b zF1xT`LI=J52^UF&t!Xl6bBK&oS%O&^q1haga5<8P!X;dC=!}ziD4dKCl<B zKvvkQw=AgG0CFpH$i{ecD^)wW@|9EiFRTwja^;kf+Hl`1SBsKlsA#PBjE*$mC)l3Q z9I0JchYk5+*8v6q6+DT%zuAC|3;hGVBlW?~4#90aJ^&B+HxmGri~8}n0X#6Gev!QP zysL6z4ImCQhH$Sx+@LPDON`Vv4_#RAu-b0e0!INf8rUzoBb6F%k}!Kx-re(@3hj~J z7_1L;O6qwKQG-z4K$L+{CJ%S1Mt@AGg=+K{<6Wx*ra}#N*MKCdQ8!;{7T%VNg|w^V zR%|rCuM?tcj72?LI_{pj!wxDbAoW%?x-aq0o?J`BY^kD6fDF;n3ht3G=NWDjl6p!; zF!lusY_R>~TvXDIjvqiHv7=*hrD`me;%h5+lyv^0uF0DGmJVt$4IoUO=KtePZ?^Ag znlu#QrO+=($72Gs^iNIe*P1-MMJ~eDFCHG~@9A%jUEP|2rULfPj76(JYQ*PcIilY{ z-_fZ6=c?#5_-}+tIC?og{rDl^2OzN=ng9|pdnPSmxC10lt2}bWH5LAweVM`5%yLUhhGIXxxq23|YdavA|R<#A(h{@IFr5F!`xd;8h7SD7kLBdJYE6~Uz>i9aB zsLxdFP)bL?(4%;a(<_f5iTsfQ!}L#0k&h<9$D-~aOypkzp9hJ&WRo?!qtkIp%G~Cp zwZ=HSvIvy~AWNf&IG=zz<$$#!U|$1`I9Ig{b9>4#_d0{Q>kQ^@DMDo|l0u(0g5JX3STh~AYXouh}QnzM$E;G&& z2W7=>OZ>Oy)xYK%eezju#zw5qVlAWYhT|)}jb7p9D~*=?K_hlYF2uwxzIoBt0tS)T zjWo2G-8)Kli>rqeiPk$!-OqASM{Iu(8-=r7`$}OMf!_z?R6>W5(-veRo)$xtZl`cY z(7-<#@F@*EaxvGy^AnwR;;JA+ou$S%qIG!{F8do*rR|+AH};R!O$RnwH3jS}+Ge?J zbjh=5cJZBfDzPT-CL!Dfcw{=E|50#aO_#=|nMw+#^$b8D?Zf^^#Q7A&`KTCs@l*)= z8C9Gdv>soyn&5yna3SDub5%{;3sk8J++lNNMHLDx8Eef^&t2BXPKkg($2eP$D-qb$ z>IkY<&>eAZ4mxb@u?w5^i<>Jdiv?1PkMFD;i*9dsqkmI(W4P7>MFjCDmBq&&54986 z4ccHi1X}y70e+hU7qn!5zSGE_muvlX{lqaXYAk>)rx8m- za-MTfsKG&`E8tj-Ei1&NT(Mr(l&y~^>kRtD@X-H}ASm@_ne*1{l+L2{OLXES`X}r| zhE~%hNCUv99RT*!u12qgo@DN0=J1xKQkz&}f<~bmJ_2@p68d7}A6;H(xe;H0b~=}$ zbe1pjyr?!ZICgb(8NiFgAYG16C@azH5m7}SA|>)G^S3`W0*t~@<&+|#Plr={8$QLE z53N3ok6>3I!%)=79f@h}fqJ)`Zg!oVW&Yrt7&s=G4i*B-cTlYEETz+B_2<|@g>T>d z_MSFLx}vBqcX7@*&Efo)g92cPu1a)Nect80jo~c-V$)zv9HOKjyUtcG@w|tC&rYv5 zYn>I@eYaE@cv?jKO5R3lz5#b}q`xOdB_1>4SQiz`g5m3?(`xa2{#VL_YbA|{Te6)g zH9!Z-ko?@JL4;mo<7tV7)j%q{XgsSDe?jvk)|nxT?7wju*?N$5aS$Fin;jSDkr>kU zJuRFwCw8{RH1;;^x7yp7@<*wx)F9aWtoCuIwl;b*kzg*ohXMdgt2Q`3RtyCP;4RbAB@q@L*axZ2Q3%zP&gqWD9Hr} z2*GE?l47{sZ)RZ?9{GgQ?RCbr<%W#bo7H%i=6J_V@mzwLp zWVxPB#G?YSAZzyw4}ud{f)b*Xr~HZYz1XQIp%~UKULy@MXnV1c&5_-v25omh%S}vV zjb}lj+>InI4$cxXiT4meF0xw`j!<64dZ#7w7?z#s6dWPw4U))Hco3XK5|j{$JeP;U zDNqTeutaWRAy1e@_J|R(gQBeQEGUu7N!~VF$pKH?Z^rcrsomM?MX6Hft(M%kv20JL z^euufL6Z9c9t0=31SLdrZ{(qHk}IJYlDkMo4neFBQn$CV$W54Ve_jq^2z$TFQox!j zf)WxxJitTYL?s6;kMU4AQ6VVa_+d9!UW_o}4=l*S0}d#{c+MQQKV>CBTy7Y5a@^V3GN`}sYZYXN=NC-;m`LmM0^H2ao}O71Gn5@wGA}wAE^voG+4o8MWvzE%;L*Nwkb@lJKqyL+l%oi1q)SV(9g9DOEGsW&CQfLKQa1UJTdhj$DkO0{*SgNEGlVHe28?X5ADd zc3*Ptb;p+=#KA|*Cc3Hf|H3EQ`GR@JW=Yi>E?G-lCdJ z`6!7)>|EPNWT*m7RfXauA-zm}G^XIfm;&)sh=R71sV|~xt&?ia+Nt${Vep>4rRw{} zL3yHqQ>K@vTz!v3XWO7;{T;x2(-Z`itiR7`WX~5iv54@vY2ws#y)A~+x~-ih>%B0- z%Pfcb^#f^dffrs4H&U!%|x!@N@$cn*PzPa5u{8s zJb+L5rz(TTXYeyb8N3=Uuq{`?Yn-4VDT7xe%iwjM%n{pIfR((T1he6!Sn;ui^A8hF zO7mN}wbn^S;e0vpcB%cZ5vr8WU2J5H$nL(c?wi9U)D2H7kBazo< zlFq2a$+U5Xq80M4NU^ae&X#%Cdy{N>0hm)}fIo(TRQ=-G=HUTImZ~&orN03uT5Rke zgaNHJR&=aizrF)Udjo79qHFbJ+4FHSNp{-c@Mv>Ye|@00x}-y08MUIax*v|Lfzvb& z1pjbjy{CC#XXU`!z~-Swvtqm%9s;4-Fxss242{6qOX92kLG{NvxM{LVbpUf(i-OQK zwA}vAh(|qe*RsmhwF*uGpAQvE zWdmO7JTF27L~h~lOR?~gE3PG$J#xi|I^hhKYi&lVw=Of)`+;ABPfRKe zeg7SsLA(WVv-xxi$qnCL|8NE$0&1C8d%sbk{XAxt`s(3}Zq zt`sAoN7C2ohk!o>n?|cN&3NRJ4t4#F67%JqmBTwLhjmsCMGhy4$7vKx^5F&A8v=U1 z!;C<=Uhg#1+(5xy&dc@Trd%TeU@ffaG%21<@T3Rs0v70zJkTSOK=a7wEK5EM?^s(- zD$?4kmIw;)UUO@|+JUiGlK8fZdUV2IC2q=L!7X^Q(ebqRYj~u8bAJ;KyK5+fx=xnXKuYSkZjt(sBN#y;^~an>T7+>zvmrIY z<9s70r2aq*sddNmIiyx2t3qqNcY8)Ggi-;=f9uKnrI-o+u$qfuH3Oqtu^V>>)&9Jg z3JEmM!Jd=+9Hp65sg{$0=P>iy`U9_&yT(#oWc>mB;{M1nJe__!u9SAG>%i2IB!En0(FcLI(5K(48 z9cuR{-*~N6a$z0tHTy3hpQ({S#Eln0@m9?_JFO}#l){V>P}&X`Y~#!xS3DG1?H zh+Ln*L*e9_9Ssm{gO)Wcl+e*g9O2!eEiGGTRz!HEvV(ACl6inyFH1$vwcfUKHECG-`dq|UUOkrvxRvreyue_IX2o5T*WfZ#5R}WS|EIX#WS7T4yz*z4MIKq6v+@~Wq)ag1 z0#7YZA|GygB3D?|vCT^*z^GzVt`0;V?|2~jE7gad7GDjX7CIsD0&8fPqWa$+h#u<{#u@H5JO;i;cpM z;X6#qP^D^nc;bB9l_ErR#m#$Ut@5KOS)=~cV)Lt9v{3EM&!LgXkJ;xk<7?9&^Qd&| zL=_~@Wp-Rx$sUW; z)I)0L{MF`JI_d_M1R&|XS}^5ie&Vj<)E-;}>_TY7nK6^O(QNown9Q&ffUEF%QRcQL zcUF|+i;r5mk1s-ID0k5@Rou0m)H92KT@8)Ki@UEZ!QCkB2;facsFch_XV^Tm9N(In z!&i;z`DX7lO{gWnZI$i^$7XR}^s@{tf}c`t9jbLMJ%yiAZQXapr`ZMD@p-!>T=CzU zs`un#Jz1c4W20~jGzXZAOMfYDOWMyG$&cqkQsn;UMIVJm+$=CykMy*e_13w&#D43Y zrtTZLsG}j+ijBgDU?+0`gs$OmDm_#0KFb!5)yMe8XGAa~qh5*0v-r$Xg}Vu7OUDYwT` zVAW0k&$+B}NcOUd>bb=7$|h98|7LW z^(JmiY3k~#4sn5cBhJ;ezhkXat|0=I%V4W^b7IAj%KR6gYKEbHrylA;iM%*qN)Mnu zk&D^ny?+cFg?sO55fWjQ_Oq6VTXP{v{_-u*h*Ne(0EP5$9)S_Nenfnl9lKh=5+6YQ zC>M1!1V6w=;X_~tMu<rwe#jbS5{RD%d`bZnayOSi z@UajDP-;3W#l|;a<&@ZH7$ z%IUd80Ch&vJUg9J0JV8wBb>(2C4OueN0pzBM8>C63SZi}l;m)IDT%DT%X2HqblJqn z@g5E1n>&trnbXKNwrm`Q@VH5$yh)0qmdB8u=f>I*15X^4_(B$_?drbQ7Vg}bIr-x# z&DiK1?50#4vIJo$qw7fU9%ay~VJD>ZAt<31E1 zg$7qQsNkw%3zse1s>-2)oA!Duu%E~XtLVqh4td+Eyd`@`>^Z2wxjzHF4RK}nXtRHy z|B|}=89uGS1x#?|5`6)YTL0iiJOT)h6+o-g5u4UHV0(TbtM$N*G!V+|vF(zn2VO8i zpd+Bdu7F71pha@Lg23ByF`FWgTd`4i1ak1oplPCVj-j7xiTQ3WA}A)f3mS1s+Xxbo zUe4Vyg2Y?Ir)>=qf1Qgu8lqofqwpcxkJDq!svF-G|FOMv+JP~Dsfy_#M>--v=rW#*K2wHsAoO`i`c@pl5GXr8+&n$>_4f{80v$<}0mk`(tk8k0~`Lqdx4$ zjVUK;^V92Dn$m0kUkB|1H$T0d2f=NoAt)6ih-*!XEArq;56(aEP`FJZ5=whEKYf}- z!*sJvlbjiDm)`vJN#A(+H$Q!iC4t>PLQs7k1Y0V0m4qv9CzmG1rOlCk;CcS4S(-qgW1_B<9j!i`-pM zer!wR3l9gxv$%{gCFKkKES{iz;eMP)n^K3N2}q<0PXvK0l`32Zyp*ZJIy`w(g{F_B zvV{9{WEcrTc{W99;Z_+#l?o}_jh-u;gXfBoRC_^r(lCM%F=56Yg5SjG9?Cm@3?x>rb-fRnM>VK5! zrE+)FCk1BdpPHs3XZ|Vr4D@YgnNTBnvrLjb7OAPbqwXw1B>~7{ukb;sM8)xXe^>ARzzC_-i^chh%A{iO)lKSQJO;_ePpi*q-1chnr{ z)ST|=v(A{HlDY2gD12*n<=Y+Q`6gg@l-nxZQI0Jml;>p(1%67oUsUT{A`3sI-BFi{ zPqP;f0*d=i%EfxJKr69PxCNR^yQ9+m7v>A?nw*;p)kh%10;c>dXvED0V*rqdZr zoJ%rz-9XDS%FFbxu()msEz79j!r!PWjU`j-hsIPc%X|rllFKsUY2ub;UaI3}weck9 z^32kp;O7d<6HCh0~lx1A_gtUJm564XB4|2gYdY?;w;E~ zFNW0m-V0j-JGB+=ZH4o2a~i?Y0 zRoVrkOkRQgRpZjP);K2w&$c++ng7Dn;4tPdC1w;&2nGaV=jGxz`Tyr&qj3M939~4< z!+fDdqc0b#*{I}*+jh`l)%buwU7zFRF@@!u3M9~TJ@Sy z8CSU!&eMcz9e|`pS8Zfu=pu2+6a3kAl6>6>74idci9@fLpNs(4c6hzd;Fg` z6Jwyi(OjEYuBHvt>KGt8xp`cV82=>*PwwdMNvDzRNwd)%!sBM3@@1*q?$H=h>(1wO zbf+XP8PmMu<4zgZJdCDbH*WmakX!Q84#OXpNgxYJjkC+? z98VJoSk+huz-gvYiyWtz@5}Nmy^duLv;#*i6Loep?ApE$vQR=tW4vnnyo2Je?fVQ% zNV^8*HXcgApxC0Re)1}0*5COZNhY~=Gce>9|R!W=fU$Brug>03Z zZrq=DNXwk4FWG2^JXvPa{@SF9JULPBIU9HZWjfEs7mF=Pahu8J8}4$#?(b+cRf1%_ z(?ifPgY%lwNt+Js0zH6zco3Y_5|j|BJ(!2WNv(upcmR7PJOJdjWV632*0uUav)Gt2 zux+jWa^JA|t^R731Xghp6t5a^tp2N6D1{kS*6Mrt_QTxM*?a>$=9v&KLb~iTHMw%Cl z4mInIv8$2LSDA#`Lu~RS>5cK<+M92@DI{mrK37W9Kb^1(W89Bnxnxq8&(9EGN=&CC z0I!65==U>DXGvgHH9_%m%5zoIS{71aW{u}nOu|>X~&5~)f0YE-wI)v z3SQ`%zqBKRg)FM#kdi0T?wh`Jky10E(NEM&JP5h;QZ*CrfI*No6Yqm3Z_R|xU8_n7 z&ps}d@HXlrRAL%b_QRC&hZ*)@g6mcL`t=&O{iy=iX4k|e>|*_fB6M{glD;qs)dAcj zB`;q;nXdY#Yun?)jkWP0RKFf{oba`n#vP3Zoj`mw0DObDz40>fAxNaB8g`r*|eK8Luf` zTJc}Y!peTJ+pE5pi&3;c>pRfMvp)-8TdR&qD`#z5YE2U?Q6ouz=|TLt)1SRO=1v&e zq4hI?Tl%M_Q<1aiA^HXMZ5EuP!t~ZTNCsKNrtZ*st_YO`AdA852DqJP*~692Gt@`K z-VSKQRdAT>js6Iv<=CUOEA-uV_AV+yWgvS+%7%ggCrNZf5wM4iBXf@`!QAu>aHkg` zGnBiS=uzCYlRmF00(R{lyRZnA9@UdRd~YlPAxrn{7B6Y2RTLV_bjTp?8En8uo5eAz(%JL+ zV%BmN%?0b7X7ByE1cbb@e;3mL1i-#i6knSX;#m!{9F^8g#Yd%l^$U&R6Hc!|&cm+- zhUuS{aUPz8zJn&JWRpd5s&6)}!{%K&>V}I%0J8KW>znOW1n_KV#LcfV?A;ssZaaII z7NIhby^L>mToJG<#*w)%Ey3J$<9==tGDEqW?wf5a0=8!yx!YHQyQ#j}ysp*wTQ31zyzj*Zw%*P|vH3szPro$9*85C7w!el;UY7^so9~2vgxM#T4{qVtHE6K&{ajtD7u{R!xC>i8mn5r{GghjJ4OVGPOLTSn}$ZVRH_1b2!$(ZAJ>wx*52y5%l_Kg$0ZOlxYM`Q zUS+NJ-Kk!*hV7oJ;=ahv${;NBG>$uVaHv_?)PG@p@c7QkA@VB8PQ0pQbfA75mg#g> zE*Py1;K%f5bIY)LgnO<=n#Ud5S=lf&I@ntq*&;q!BBEO7aE-(Cg<68_JojnQC~Kv2 zDGaG88$m~Fyvb=~&u6yg2H|nD+Sz<{aSW;TwzhA+Y6v0f8s4&^cc=%FD0th<(8gGV zx-ci$MIYG%ueMNqCzgy^v9PH`gz-kR`vWmO{zEW++;_h<169q;U65wdyolb9-N;Q; z5639%;^HXxa=EWHGB;)*!|mwuBlC2O%!X|>H;jtzX=2Vv{_9Oz=G!?f`b#t6D=ZVz zOVnAXXy{}Y=j3m5TGl&_`?Q^G)#+$Ka9 z;Jl^&-m&PDpn3ea1ZsQ|b#D!5l)vt+Z+dh;C=mft7QMY27%Kj}ax8j4{RA;n-yMDP zW2XRA%qXeVkOH<%pBgb)Dz2KWZ4ZL z0e7y0zBmPJ46l_=_%yWB$8fdCm-f|+TvQtw9J@NY4B$m#%r3_#6rJexh^QbAFB;2E%XJkk$k z`*2`m-+iRDJet855f9oY zwd}UIHn4dJYKw>KBOB{I&BaoC2L<`Fcjjgx8|3c-O%uBl{2Oa3JQQy86+sEvB-F)2 z>GZhj(E?P>^CAfa>|K(VTBPtJQ)8u1W+%U)H8f zd1>8e#k$Css$2)C$yDWQ@JXCVC7ueUDuvQ2o2p!L!s?Z0ydq4u&QH^=qK^_Pbx%ii zP=Aglou*&os;m4<3;9LBQd7wD=*>plw)N(T)|*77M_tZXykVd=_}V;L@~tspzJwmD zC9j00fm-tYJQPk#5|j`v`Eec!rzIs6j0zMBwcOxurrg-`+H}So<*0=wdNcOnD#t;1 zSxPzjr-jsscR=S!ok){Hslq$qBc%!zil7RI5nFIz3#&raK?zm(L%>0*!XM$2P=(@Y z;#A?%)6O{Y%(Ko4b~O)3Q-^UsB~;=*j!HE8bkyQ3`zH``kS2R$1eBDqk*nn#yD5Vvi;bHa6Lf;%4H zbN1rlA=twNiRelJ7xd|v+}zsrH_$XtyY2udPMPY-9uW4F5P}k-U3cN3aN1Qu0qyGJ zrWP#x%%me&&1$KNp1?j_HTxrYSxU`jPAsW!JAp+>eVd$1O7Sj*@0H?Jh=bz2pZHMN zFI63=8EP{!$S*w(P?L)HczhCyS3FIe;yrZZ$k66)SSPm5*|$|*MXbVB-~^1mp&i~H!Td|E2Gd7)mPZXNBEUP{{X6kzTs zm?GO5OP=S!z?#!7XoaTRY2@e{P75Hs9A%hi$Bb!@YDTr=2E1?)Xi+4|2^(M3!K1UW?=t2J?3)u`Htm2QX zJJ<%w}bTe?^z1jq$ojw4t7w* zA1ye_oC<2JL(Qk|W}6mA#JKsKgO=Gm6mC8f6t8%=r&d;2Fs4*+v%Wd8M^%fZ3+;PV{oJNjC;dDL1%Mo|HF^1H7$95EVpzsym0(L`8lRxO-wt#7V zL?6X&+^A=EQb?6g;QL8CTc6E9irWh2M@mOR&zr4a-(s1N9$ei4?YMe!(;43?zBPhD z&vq{1#pw-fX#4m6Lk ze+1p{+hx(X#wQUvT@H=%hfZoM7=n~>(}#ee5&o&Rg5k4Tz);QsL_$}WCg73?PLK&Eb;tze&Vy0(>VzO7)Ng1$HfYz(iJQ1~LW%fCHHjG5R9 zCdSdb6>Piob3u-9Kt0>R_;C*34t5_7svK^2JJ=8Kr#5W|`<|e}mKZaHP8;u^Lc8{i zw|_g>T}UH%^D(2-wI8Y(+74#4x{jCx)7&}@Yw78=;YOt)PP(Y{$n#QQ2Uw*!geQRZ zkHCqc1HJVTd4x%P)j-Zx+KGFH&`^1YbWUqBw$IQGMndzn@D{rx?L9Q9+dxD*Bi`Bq zi=~G!S&YPvxans!$7-niuQRY#L%^M9b3ig)Omq&Dveb6FxwF~n%ibHkSKPMs?rk3b z2k=J3-*$RNZ4>J*PypB&lj}swD9)0?S$_$F&W@dqwzj6bPB6M z%c(cS#O2nW*F)1l?fF?A3a32@N{IH{%0uC_r-TC9GiISyn)q8GrKtrcx(@qrmF89O zvXs(HpB_?IJ_rE(y3*N__Yi!jRHQ-`RODL`>oO`*b)cqQ0TuZq;2>4xQ}`rQqN z-o8D!p$0QNs?*wA7Op<`i;2vwKKFs9f$H-R9tx*E2}+3iJer5XsZR+7)ThNpEl2o! zAr-2HDB2tQa8>9I@UoN&<)@8Qqpt!Wel==L8dVZ~9(=4+sX`f4>14#dj4D+fC|yuM zm2LtYq$=&hC!tEk)5NLLWwakGT#@QhG>^iIcb66RIQQjxb(Cnl4~bN0{I?eTzoTJS zqn1a3UKY2VfTONBHh9#hvFj{cd5*;d=2o8XgrULYgA6@9vAc+lYjz&%HG$PfS z{6Wu|*n!Gofjq*4>wf z!f9QC5~6jhJQPmrN+_UpecaT-g`X8tzgn`Q8Q6!bexCx#E2VyeCYaR2s{jGN9!}0H zrI1g7HcBBY0ze@@O%n#hAbHDoNY+$!pk`|Ug?t{MCKdAe_#_mvc$zqce8i@DvwIj) zp3K%hOy0TM`wrr?vFfvg7QV)#V^p_QTG`yPq7t$%rIS`Y1({-t7VP=E9BCft-_X@P zFw|2U=t3IhoXV*s7QpDqgHow45{`0ZJs1a-^+u;*rnt| z747O>_cQfRV8B6#>K9sb{(VfE&%5VS?wT#p+p!y=Jo|KY?0MrPx}xs4Y80C8qXF47 ziN4eYr!&=;s&-hv&^)<;KooNX{o(#(?SYemn7B=0S2RxIs}(>x)_I~pGp1PNGJ4Nx%Ipbi5yI3%$TyuK4z~1Q$#Vl#y zXAXq#YVWjv+H6g7AnnL;K^o$qNiXiWkTdxc=9JibR?tpP&{0hVJ98F~ymfs}= zAMPXdytA%q?pRYBfomw6^^u11i_KS>eS76%-*W&Lu$zsI!tVxNpu)|{(xsJiKzaz@M{1V) z^UJPG(8&)B0ctNWf|N19 zl)d2z|5ST{@fnQ2xS~mo75Fwc!)u&*A>RDlf_94Y(y8OxrV)t|a*m@w}=HK0*uOgd&_lI`*H-m~n5}SX;z=_SjiavDI zmZQ<1zn$wG5F#96PMzvFDta*v7N`kmH4Pu7=vn(y4-)%RZ4-%`Q{@|}L*l?N>|?D) zjv}DSnXrY$b)dGx;Lp*aE-MRfOFa=+JyqDntn*v&;SgQ$U3&C^zK5o)_*<<+mPCPa zoE9Y%YJ9j&0hih`k`ALfB0Ma<5+UFqrBWCDI`FNk^PjlCdtP)K=~kbD2wrI%g& zVthugblFA5_&pN9W%S5CEK^E;7LWJhNj21Vr<_Equ}*|gX94~BLnsj}iQW3qPWz}R zYEO7-u>oq!wiaqx<&aSFj5QWz7{E0?ha@i~DmzB4vDmp$t?M_d0#f9X%1!trmQ=)3p+yN1G?zUZWhKT!a#|G* z|Ca@a|4PwVTUpy0{1Yikl=dg&$5)Jhk(C>c7Z8?>2qzVb_A450T7gs6u_Q56fOlIp%^IuH#|iDCvPBm zFpH1r8|O*`jCUY;AfO$d2#}mhx1MGq;3*+7_TZarNG1ZjGs#W_9LOaC4883iy|fh0 zn(-OC@lD~Z_Kcj%Un2$JXYP2X0G#VPF61c%a1%80rvUI5(*@41u5??ZTccPG z=S80s2&5Y${FEY4WHjd_ zRs)acLX;8!j|oQcG!grerd;gj$Da}aYHs^udDCp-@KORmDQSPB>;%AG`>F)M9DEW9 z0P$2h0l?Et=&Q0H7X9>^%7roZ2gTTnr$X4brKXa~L(UWhN&X_ry`1cX{MIQz$Wb+U z{&bk?GSM%)s=l@k#|^*^$xd~yI{bO&aI=4Cur{!^J~+C$>ty)Py2^1C+=$azkyDKS zrXfn-y9c2--}n%K=x*qf=9Xde6AwK45E^H6RckbjF9hE%80Z?P4Q?8(ZK`*{&s}E> z_0|;%<6j|q9LSkz3xd)iCp(R7CBvpe5FV#$oOH-BF{BANMK`$!tR!3J8*-O~zB;DH zpYq^JLNzC%zrk+YybHxy3PV}cXTQ`2r7r^!uH?dxh(2ZE+5fAPRVFWu&GR!AC+HV_ z?86lJMPihV=9dk+UoQ zCKj^kc;re8W$udqVHN60^tIDxpj#tKP3J|Q5ToPh$m|Qhne!ZQ1om_-2o~T zT~UcG742gt`L*WEdLNNq$ zHt9%G3Ja?Ni@PbE5!pYkZ^6iz+}%6TR&QZ6VL;0nnVJggpd)6Cx zN>h!?YoJ}AaT(@8aO#7ggoyg(JQPkmBoxEA&^dGBydv~Es{T;LiKySnVqgw-E`w4g zqHf7i3gO=kEcUFbASfZG|vXzIz$pS$MG9~x0U_uAHy{1IsZ|j+KQ<7tT z{fZ@)l@EdvVoH9`L*YzG4qB$p=X`(=TEb1qY#vqtQz8kqhu9Q0)|4D%E!Tv`D9U)? zB9CiO#5-+JUc}RzYETwKyFi0-3=e`+A_OHwA)dlR;gpDkVi=V28L+=$u`!1~mvJc{ zt(+^zErg?+SsK`BM^Hjc%gs0dKDzk@(w6Cf$zY zm|vH$#Io{1P(tj;RXh~Vj^v=_y*w07J_t&<9l3#rRltr&6zm~3g^jf%hm&CtU3S%9KDSu64mz+PZv&CqC7>+zRait;=_K5S&IKC?VSMKX@pd#7HQHb*W^rUGOv| zJvKMBvBCELX0bJ8C6^^)U>98J|D_z~kP-MROB1Vq2ug^3+Ic}?UnK`E^LQwnG!c{_ z`?Q1w6DkJnwNDa%TY071ryMi%M3z`qJ_t&PeR?Gig|kmNXzAvmaPmP=!tK*$9##SS zBvG)3*c7(dKD}p$9blCc{((9OSxm+^vJVpSR)dcF5ug#&Ci%CoX?zmf*Oo)0{M*;m z5ugY%`VZh#^basr5&o%;0L5phu@Faqs@hy&=8^CktD?Y!J_zm9!D6x`$T`rz*b$)D zJ5pn<_U!BtQB^FpEhAC4hy z7kfyvhBkTZ5v{(DBkF@PyOLS@}CCH4md5up7BeL+_55OsBr5UV5wS@^3*G zcssK<=N}X-+Lm#M>r!XN;;-qS&(d${>|EC(hD<^(gh8Ed)Yl6ejOvhT?B@d7oPkl& z{$Vi2sm$G)u+*s|C9G85%Z+Grex__2)(}a&-NiZK-8=xy$?x3=9?H}CP6YNz2j>;= z)Uvk@wU~+HY|hUj&Dfl;W(bVNPf7QLI7?@qRR z+Bz#6K=b!jhUE9A)#%vRUmxgg#9Q{;-mjigX9G*qRf;*Kw0(d6C}9}CHAEncU!iM~ z0xrYp%f-XzRtpQWhWg3-At=Syu-!R&&FBxm?@BJh`ovcLovzH0e=nzXf`}9HV zdLtjj`1*yO8_xo7(~T4F@BS`s+q!a_$I>Z05I(nkh~Vy*yY*lc?%C;R|M}`W9>DP@ z;ube%KvOV@z@#|;)0$LK_5+^uD9q)daOp;Z;!j7P3@0NPU>37rOi#pAgqe4q2Uc5U zxbQjH^%9m2HY_G6_R#zH9G=EQY17c3$3rPR^vgZ+ z6HP~oJkwq8s;dUgy*IL)VTI}S&=h94ElmCmitpl~aKc1TLiEUWJQPltBosIf%H4>F zKbRJx+*s+>(UU+?nW(juVh3d)`xQXj4P>n3yM1`?gpJd4GgR01;m|JG5%jsK}7YbLEY#Dz=_3B*bP@gcAWz; z&06gl;Hf*u;un?0vd!bCx zNn%9c7UI64-aL0F?P#? z$qk+iw?wV_?c+z?Smjgx2AH^?k!R+OshpCiIAAPpt~>eF0$@Bo`-&)x`#_VV=yQMM-buM z#5EPaQPjylG+n>UMHd~x{U|i@AHj{km=TmZg4;z?BjC13w-~WRLIH_Dz>X74J&m8< z3v2`d`KkCc%3|uFmQRY@J#nxNU>De^}eOzby83(|Iqm03!9{9e`PJ zABz3P8%^;Bhg(6+e@!a$@fU~r2l|UvrEVK2|iF| z32@nz@jO1zqPT7As)_Z1Oip+d;{o#8U*Gj)bTAENc5Qv;4=j(3sm|>e9Suzb{i2ui zP&j=?Q2c%oUdd*ZKb_Bl2{n$1%_9X5cFBl0bFgoKrHeIf1jQBwzn^po4}~*rIcT|x zhf+cm22D|TFAFAA6x#16Nlt0&nc*jCr4${76nWG^UO(w`EN56@x*3`V`bl5sp>V=P zP(u8qdwD3FFi9vLKM8*@ZAiJX(ygNkbX>|$O0}2LSNaX~@A^un7p5*cZ0o@@R;nH4g)i3 z@s0gu>hx?0P}Z(m@AR_KTwt{+@Ohl3z2deLa1CfWgFR|8d1$F^6aDT{XG~vi_oxa@ z1Kpz)JQPli5fra`;2W{n{aKa>^c>Eyz!88ly#!9!2c7u*f`9bMcP&z^n0sz+$vTUF7gdTzql_#Xc z3Ou3NM0sIPNOe%c6M7PGke<*}_#`q%;%VYMA(c78w z>5-0hfR0P~K&ci`x#U8b0L#eGk4<9*`0$@PH;0-Gx0M)jRJC=2%_6oGb0#zmbcgokp>W!apm^OOx00yJf(bQ^34f?Pl|(t% zbu3E!U+>W3Gs@q=b>=IB%ye`BK)C{SL7WlJ<`!rU_nZGMd>zC zxFH77rm%C)QuY?;UM?)vxnp%H*of1N@7U&QNk%Y)>;$NUAm{u*G5K$E>bvmog{Hj zETVPj4%9|4^Obg+9)poEXN2t&@OxGMD{k8w+vasgIBMQQaZJjEO6@CnRJtZF`U6rb z_49SczWvq$eN=k-xcE;*n4yMFkHz#Q+*pL#wS-HvKM8oF%a3D;lMp5Y#sO#1sFM)< z9NlVgbUaQ%umes*Jp2cuYb0gTP%FCVVGx5dT0ZIoeo1}49G+Z#Zq86r=dHP^YGF)i zc_o~nDBViVF-txI5c=+eWWSQJU5|KnnRUZ<gd?SLR|G9fNQNHe!!Kc+{AEt$pyU za^J`+Ba;4s9^DPO5PbyT0|UFE5vNH|5NO*i(iFJu_7&pOZ1(3kk^J?!sH0)H6dQ#P zLu?z;4;IF)Bg9KR zf%j7N@k^bR`o%p1qrK>};;lV+dW5))Cw5xf(Uq3*<-nA5bz;i6;lpmH$^*vaP$Fj> z9oW-yag02tRoE!pb2{#%_&l!4NPQS?<*N@i#W`-3p^eE%2hVyN8kHfCI^+Y=h9!H^ zLh|ZdB$Fd_9yH>#l;H{^cLE)u6UC=(b%ig=MI8-j6B~sOXkOFP3dYGaJ$apAiIwRA zqmJ}?z*oT!S))k<|K@;C$pc0%<{J1Q4_GMyzccIVH1dFzHupEGMjr%JIS&|rmmcs| zd=eh8cq;7y^E4Cs>Pp=d^rd7>6Q|Jmj?@2cjQu?^_Ts4!_A{z@>Z7#fg>PM@<1Nn; z2gO&a@&LX5!8myhiR`@`zg>Ro`0D~0xBxarXsbGGkB&?1yHmYr4N9j)_EUw^Ge_&4 z72LtmIPTcNp=M=M|AqBIIJ5o`@l&I-vU#X?bfA75uIzPIE*Py1;K%eQu71;F11>{s z9(O3*xHmL9*bB#ViuX&T|8L*NbC`29eV#+Hw^h->!wN$g9ojE7BC|6PdA#olFCq`6BBGZbHf*a|VVw3pP0TjQ zdwoK^`F2i={?bgSvP?)nm;NAV#~C^`YIrVvMSN>ux_d%bxLBusF{kDEMN{*#g47&a zhMF0q=3E-=_j6kD-x}ZZ3*viD8GLs%w6TkG@;4~KGQZcj4;RFJpbYLiTgJo1-uLUA zmh)Cqa8*GH-c*JHaYCoCYcBTgFLPSP8;$k#1+l)i4AwKqG`l$4??J}ZcN*U>7R2{+ zW$@kE@*rHSeZPX7*ljcg_ZFn!?%Wil`>?1_?Nj`{wlEs!d{wk3(Bxl9)%YZ`QxAdz zlRrDvH(lNT~#ne_lBjJpe07;u!*DafG092*BVxOb$~>%BkxFCnGJqF}F}oa}#5lel5f#KCM&jc2`P-XU3p~Q16lZ@=?liC1JLY2OL5xxN0h3!|!fkNp)JcVkA9s~%1+5wqJDMHnOn#G#j z;L_J`0S+?B`E7g>Nlx)pC`~BTO4&5wqBGApIYisJ=c`NJcR}kC%8rhRHv4jP-4p>p zsygwkh4&E}P&FR5Ipb?qAB@{h*!k)v(OyM&XdXrPOiWO2MfY218mQ=|EVcE8&2o0@ z5J3r1bi4CV0NqqYC!q*M2kg_bg6|6{IxQ&CQ`m>A=>7v)H{GUX^!v9+kH_ zCMmbd>xZU+D(`hX6wbFJC?P8EY90#A=~R^`p$L@+?9D>rjyGoCyfl_;)fKQa#Q|N)(I~y@AZeOg%X zy(ujA3}*Z~Eh*9Y*oUj^R>I3t%FZ(lq_%q>^z3RoIR})wdp~@k)SW^O)ZK}QXBn?f zbx=axeFAWh>h6>HB-EXFnmBcLC|*|GEvkAv+tp=aiEhk|_vplRe_d7}s(UJ-|6Y~S zrL1*YQGs<+xY(h8u(_lHJ9p&m4|pR-S_zqb3&hO}b+)#3v{T+E>C02(x1(4DmFq?8B`HD63wJq<>N!M{ zlK*(`lX)ndIOL$^Y#s_H4g|$N=3oVkF|V;uijO%$DLv-4XO%UT?XOML&63wA#I(0( zu=}lD&gE5ck#+valDsC>J2YwK&~F=`G16xXrnv!SM({0wbl|MLj-`*CwFG6?fLZ%# z9tt;WbI|f-9tt;W35r)V+yiO9&4MxInN!sTj$X^q)slwHnWzq;@lUO-#%N~M4$VTl zQybY-2X!;QTh>E2mZ=q_WhmLp8a;jW&9$-CH2Ai^cdSJR(Ij0cqv{G`q3CwN17aYJ zq;!uobs7>8??rrVgS>AYWY)Z}C-*7~uY8a*kjo7OS~X z9Vo9{6K~X9OebgF+LRHkngXSTGheKNw^{fkf;aJ0I(V}&F-0E7j!H&Uy(x=+`mVA$ zG4^}M*o&t^*tca@8J);*jyOP8L{bpf#jz#qDceH{KgF5&r4w4_*-ZJ#$g$u3}-knUD*hIU*z zy6IN;i*L8ZPO_^DQuF3A)Wkc)L~XdvP1x_fJIVgBAif_egRiwS%)vSNTk1}-TMOd; z`7*dWyTTmoeZMk0$?hvi!FS70VC)Wauy=n+*-7?TL9G9)4A$`uF$ZV+y>}R8AQaHQSJ=)UK`J$N2W#K2%uceo1u57I+U3)c>3%EfQ#dKUJ#AX|JlD)!_ zlgJF$Lw1s#iyg>pypw)C&*|EpMAck7$dB|COqAe>__@}EePeLG0VAf|KN-EOaCrg0y>dN>p~Vz)9h;-s!mJUx_^mye$Fz zlHEVYZ6_ee)KQwv3K8Mif&b2n>w}}4D-Dso%TvGd&6q%6>QpFe5sJQseTdQ1t)oxD%lyuOF#BR> zc`I$oNFQN`!$5nP0e{PyCaR`o5`3mS2Zbgmq??H9!Z}gZftq}pa3d$mU%{|DpeAct zX5*7ci;Aa0iAAA|%I-sZ(W-M-uP&!9jUL*hF0CG2b?N>HqQ0Z~P7C^rfXSwy=TVo7 zQFoJ&PnDpVeN zDyKzME*G`qy6OFVfw}6Vgw}ky5sIqrjC$$JN@;=Xr4?}}B4&E3wmUX%b<*=-AkFC% zw1mCTX=E#NHY7%PIhL^Zjv=+)xt%Owcd6kWlPbihk)El4lKB?>LMyPNW0HKTo=>)D zc0@;EH$sOQH=%Xt`e?T@+Wjdh;rk#5JCYUS+HilHxMA)C&=l|V0D42`*TvlyC|KU6XF#bSh<>6^N~CV61n4HI>9 z1%H*NXZKrsb;>K-c46#dt}r&KLCwXKcwo##kDintAD{8jY2cJ{7_O)}W9&X6I2@#} zzr<3<>T80st5HOmR>=M>9tt;ybI|f59tt;y35r)N+>+RzvtUd~<|b@`lGvb8&zys* zB-THvwi=^39wo7Rc$}e>yKXds(i&>YqS-J6WgPOT1CE`PzV~c+vVCuDnN=z5ULK^4 zGFWAA!4=<=WTSA(S9QR;;!GLrLL}@IEQmb_pM)PSo=W@Sn*F{j)u;?sEta$BrF?1!t{mJl{`WV$0^}uk zuyVH3$nkbKgMsjJ1S_Y+kXj#VXRsoNu(7Nm1g~5E*#$e?VACx`zVH^WL5c%g`Wz$& zWmsR#+hhzsY&Oa=8BKWhg2!^K(gm&R_&FR^Ha`k;v&vf z5mcUmH8+4N?rypT{trVN!t{Gs>e!%!po9b^KjEQp0+fT6U-M8n0U{{gpk(J*Dun## znfELUudrk+4v-9i2^Y3zN{8)ZW~mALYm+oH-S8%02o!heg8+_~%8UG-V1GyXISFOB zqtTzzh}JtjIQzj^nqG?IaHOVJ_JMYRYVi;r1Si!5C1i#k%|qd&T0$|@;-LkHz^^W6 zP;Z8^d^wA(DL1(S_FZg`xu{-T{H$5n#X>d*H<#7yAo)aG z3i^tN0A}uK37|)5TwkVZ-Rjk7^p2&_>(G7QJEZY15Se1sRb&|7OHv4%eXGDZRqJ* zdBTb8&07PGxLPva+S9z3$?DF&mFYt4MOxA+0MW3e7d!piu6w>sQ%&g06<}*ZO@{+S zAcHs7cZM~$-T>|LZ>ABWBsNWnkrSJyW)Kg=)iE$Sa0&7AAu$QEgyYO5UU3G{E}t_QWrUywKJM;a%#?uUubi6GmWrfqBB3)+punm+qOQwU1#SF z33BUu{(oxvGPpWzT1(}kNsFsLwV?c4JlMX4igZ8X8_+J$HT)qDf^!WCN{DOtC=Z2m z4J8!AHEd&Q`WY52%go`KTD?P?VR3OR%Bp87otj27Xr!iv-(sYve+xecrl)5eC5?$+ z)v)Plf)Wz&?#)BtgeV6si+CuU5D^q_z?+($KAeSDSUTF0o(_@_J2=Qv7xvdCd1gd> zyO6!@BSn24J3#65o(=5+)nlCp!AUkj2~m#?9ttPf5{jW7$2~>;W)@jfZmfX7QJRUG zvOFp34C((n-}w5|)E{7pVbjzErAV6kMjk4cQuWg2Pg8%Mhr-D&K?#xFZ}3n!+4XVI zmy0I<$oG@>mG0y5Nb>YO({_Mh68?cGjMf0W%=PE1AL7BaiMdbkPy(16V!r>(LunH& zvyLw8iqN=t&9^UKy*CT0u!_o+uMW~tw$075SoYT@8LWjKhn)3GSO%xlaTK%*w7jSB zAUL5UC?VSGJRS-+!6X#J^5)A~_p^}A!OdkxLvz*{;#n61WhW-GhBc3P^55EdYn}3l zzKQ{xNGI4^DrDU|+6gO{8gG|y>*B8&ALdIi+)_aX+uz|~yD17Z&sAN#pEFyN%X$ki z;cx(0vW4)kaT~V~Ep=3M?u>qGFK>n~rAA&On@IBC2*a8`$uGiUaWqPFEAUO``M(BF zaAdTR>Ktq79Gt3>-`o5k&Quw7@=DMkANxs^xwI{-?ux)^kaq2_4fJ19uhc3Hfd$nr zcd3QIdE7VJpZRvMi0U-*^C~3>tovA89D& zny)l3AI!ze=KuyE_W(AU-`5HH25r_ZlikJg=##;$8HpiStsqNLHzeBDJ_O z4tCZqt(?*DKX?2m6Nx*Q$!R18Eb+ft{5D z-Axz=uIsF*vXXVNsEb~pzFn=pv3GiHWaG5P&A0cfQ%@u7A>&^a2KY5Ij`*b{An zmdda{7Y6{!+%od6F83LE&o{$pu17)Lve+69-bz!~5YgJTMQBj2bzgNds$5-F`>ifDU8FuBzRJy;es#ou* zSFhfCRi8Z^FB9VBKr%{`p|z3Dgb0KQ!4oKRc|36`ZC~+B8Um|}waumeT(O>mO1Xh* zEjKV&+FIFI8LTw6LGdFaI1seX-Mcwz4pVI9g8?(H8ZZYj*s?iIfoQ z|6$O`VM^oURO^4}PXg((5+0XXebM6*YySysT=7*~S^H0fzP;A|kT}MCvT5U*PmVh0 z;e2Yh)F|%T5WS{ME`iFCDMR=A5I4}D^swb;;X=Xptw~vD&+sko;~u^KfmfAVb(u&& zk6IkDm#!0cqdd2Ls2c)6{qP$C-ooSy?+Rd_GM%w!xofT72zz879Ih|cN(G^NJTmMS zx-;yoj$#w-njf3kd0r7b4qgM=kGT5#I>Y&9HP3G>)phcSKe{t(g&PtsOR0#Q?k@8?*;BrWyGbEV_&53zTp*wOcx zDar+3!fxz5$BpAJ%Up!Dbez3RnDQ8fem-TUUPY3~e5mO29g;rrA))_(cAk;G|Dr)q zkv;*%XF~mnhC)U9IF!thzCB)M&VO?%>mE+S0!vDmX;Y+c3XIM+@srpZzxeBc=tr3d zXtFuqp}<`Nx>uy0lv2kpN>sZ^I>+ObXA}s`ObPb|f4ww_POz0C=SydE14=;g5!Ewj zD3qvjD49j|RV3tHEvoBbbpE2sNs&=h7kSzeLjS7kM&{ZLrRYX~P?CE!N%nZjy_^xm zOLChuh)zOs1r#62eK!q-l3Wf&mt3&E81Wo2C)^R^&x(W}B_aDtZse8`2Bn37{v9wZ zf00c==`WM`lJ=p1a{Me6y=+ceF69(HDXM;phO!d6i0HfH;2~^7Q{eIh4JBD>g7bA; z=2-T=#4Pe$;rSFjf<7D1=Dhmo$Vj!;DAb3FwZ^5R)kdj4wjKBO>vi!!>O_|ZD)K29ky z2T_~bn9LY8=16ADd%=ckDKq96ARo_+Sq`7<%$Uf=NG8Y}OrfFW$;f>VO!(V`feluF z^tI|%p3G&Za4$*@0=B||SI67m@GI_4AeP&&w);7Fg?(wT-jiEfg4+a#bB)?)DOX{& zJ3>>DSISlD5Ik-`N(l4?Ug5Aq)+z}F!tcRfHLEic?-j6ciC=IM1V35oVBDEmR)hOEwbdE|>vJ zc}P+zQEXD@dciSY9Lm`{uwIr}$KEM`d3F3}h{LL-r=vRDlUs?2ghQ3#QayKBxzbmb zfhAZ`AQi7a(p0QTOv7|UVZ!z#*IQ!?77ReGSoX5!Sg|_T638@IckZ;}AgqThw0T(t zQUak<)M>rB(7r3r|2t6(qNu6$7)YKzMd|rsF0#|Wrjg>9BP_a=e;D>st z;SuDz z^^y9Sz3$8SjfKeMt=TK#YVC_aopp!zXoCeMLtZNQGS@~&?z^Kus0lh_IWuml+0+{%RgtVs9>30Y??rAs37f3qf{U)7R=*rO!E8EG?Zk)F{86n zaPKK+9{-|d+pRRL3<`!Lno+?VC^bfOhaAx^vy8eDLF=i)^wTt^v3lihXy>U{zD$Fl z^ooGuqgTE~L!rcjLuo;;{G5cn>-5SKj7h$FB?Yl}dwJ$%UO@5DE3;`RlwL`J%Rw}h zWWh~|NO{^c1@~BU& zFn^>gm?V}fK=gZ}Js>)+xBL7d)i|HyQ{X9V6b={H7smxZ#?3t|L&}S*dcyCJRN!Jn z4zmh)0+OuCPZd~+M=DGrl33IO#f&{pqAWj~86tOO3N&&j9N{l|U>v;2$7Ak_94KZx zc;lo-X?Gj1kwTH_3?{Krn%1(7kVrZ~t|i6dMbgP{SXH`Lk#r&jHI#=)(#cIAG%QBL zeEg@1u&Ycs(Y(|=*90DHgbYNM(8yx4;yx!l#NHvu3U}8?=`h-3@Kz+U$Q`8$-=1HF z*EV2oV^zj>J1~t!R*)%_Q4rCtSR|MO>X5&RZEh3_(=Y7TSP*t6ynmShvjWE3$L{N? zZG#M);Ral!4gn_CuQ;8VW2ZB_b3%=EcVG@Edj^@GGQUH`qQe+8q`&-~Js<=VkUdH< z9Bb(tdR~e|9I=*6G1d}VrF@@jce%#uGumvJoQSg;hRhRj*5D_Wh{Ha$l8D1mY9$fp zNU4@Z?wdy*PRs#xtE2cdoC$saJ%UG47S7FXtBs%N&x<8czBoHRpo?#jXYZW{Rqm** ze(X6ntk(_6>u`R2Iler`NU~8$$#=oAY?-9h9EaoRWos&Wz2<$~8^H}-M#%1)DP;T%`* zF`gTO7PeEweLh{(kdE{4yQ0lMlC+5r3BLo{Mf^wZ^SvLYK~OGp0VStx>6(+m+sWXQ zLgZ646v{8cp=d7iFux@}8W&bkBls#g0^Rsd73v?)6qpBK$o4s~B%Yf~zK)ijoN^QE zSxZituT*z$PU-H5%yy`HQf&1{irl{;$sLcyFWJbvl2e|gK~Rz_pyWIxcg6~H+n8b* z;7~Nl?XW28_Eqb(6hS-5ap;UrCBF;p6fVVJZ4Gb5N4p;k++T`0%`!@Hhq5#xk~@|C zCWTgfQ{;U)N#1yQeHp_p@QE?4ra@3KCIQ7rSWy?igD1nj?foJeR)**gA3_?&&~?q| zk8>e6PxtOAqd(Gabk82^+PKR}LikRb@p6@KVbWu&6n#w6P!vvVHig>9bnwb0N!*wUng&3I9)H9j8f zrR&OYfC~Os$F0KSR0ym%+TcgA__d9p^E!1qrM>R*mh#XE*%e%ZIPsIU9~14z+i!h; zs&NXx^%t;FI9#-All;~v3CmiZx|CmS53jgKQMn~WMW@d?G|z?0I{dEK@SmyB6CUet zLnF7x8h^1o*2icb>xjcT9vwAAyU%zf9ZE`P@F*K%yqdzQ!d;EbqPD(RRk*9~^XOH$ ztEGH~Vqm+gn_tk~)Y6-*Y#HvPR^Jn8r&+bV{Cag|yUFgEMZtS!ABj#oq)xy)U00rW z?l$QN7k$Vz4VLo%1(+ytn|`t>!n6ztC#XZ)G?vcK z3?~qcJ2rdas^)635e9S21C8AxtYbbk+@UJYqZzv5%waIz9?}!6c^c$2qcYB^v%+d* zPHxgeitwm8Ee&7cAw4F9)O>*nrsW@rl4OhD%$K2^r`z;$8U*Eh5>R|**mX1%%5BP_XwIkXCobPjjzZtB zQm&`S9$F?#wtC|7W*67o$&z=Hn2`Bq0*W(P(&29Y90|#nW|4%+@pLyk>FCbedxXT! zgN~+AmNX;H+B)%cr*=P+1I?+uk86RBI0k1KwL+C_K2<9Dw>0XprxQ~ z(k%jtk8bHWg)+^_)tf`nbjws``!L$My>g<0BI7|Mbe+YNPKnG90jGtO;{9P@{_bi{ ziH!0&OXU6Z=9mgZzk+^g^>p#G6v^M zUWf6#uHYp|WghvxO0*yE$nRLHaf-9CWj{5gd1HDjsLUwE75+;nlQAyJ^>4PC{C-U z!r~)^EJ=JtuvxBEVJ9Gy=4?t1HvbleEUv!APyFgz{M1UYnXC86Xzay6pt163Q_VP0 znA$f8@0%Yh>3syJ;maxi7Gm&RhynYQ34`f*WD2)lGGE-gNH?6;)!^J6oFB|H4DevF zjEgTGYaS#&_c)qZ!ErXUgUXY`;q8z|R=63MFFzn3T(A~o%h6+=XM8~rIE2fe)O+e+ zbqtp9+S;L!hA|rT63AMCUxUpqrj-|h*9x02E7mq?Q9O4bxjQ#B2s-St0=s0pFkBph z3${+SSGqSC>zuE_Kf>tq{?hOT(RWQXiY~&FAF%f@$NY0VwjIb-|QPiF&p1d?f+8qLa zto*p4m1IQdK~U(5V8Kz?4G)2<`g5hC=zAI26snJu^a6ci6?Or-=FnaxA(!Oce<{B2+J&tJD%p9&hg zXbo;)z+}P~zP*<5)l&Gep&3p&)4bBrlbY+#(DOO0XHA0Vsr5cI0wMxD+pHu7*?z2O z|6!8$@dEu%Y-*LHD*;3g_Cb*ME?if~q9K8>X ze8hT)hC+!o$q6%tbp;8P8X?4~CeUI!X7LwRIYi=Ei)tvmjz| z>=mge)w$yrrGGv~6Cu`w`Y^PMC%}h6HL{{fHYDz(M{-&h#6(ot{ zrF1o;gO`*RXb_ZA6;OPnbclvRNhybtSxR3+Lf$1(dIjT-uTtgsXOzAC`x%J^Y5fW)&Mlkc0L~vsNWS!f1>D@WwR8Z7*g-gH z=-xq0KO?iLz@eDxA!#O>wROVLJBZMCPwSHDqMlSG;diA;7SagET9}7GJI~$1OKA|4 zCJ|74G|37Y3Z+Rnl(uM+^T<)?45oGtzd~PoMGNz2dHitY)+G?y96^NM&XsjOJxLU zDKmH60rIit)LLnv(mxiQ0={PV6-a7)k+j@d&?tRcZh2bpIAF&>@|@hy0VmnlH;x70 zl|MnGs(e3WC&}11#Fgd?p*#GCj#PcGK+#mv1j_SJjI)y0i{Ju6N=QLDD1I_P)cXIr)xT*Q=Y!4AO>_5=ZDSa19<}&i~||qP?-G$UWUO+U!^g&omGJ3oZ+$U z!Bqe+U|hNyKcTP$ufc&%7bG1EG-kmOme_CxNM`-*5$tw;7}C4tGImb;ptd7-7?XgDR@mvX^H zphEPpzDJhhC*%GI23KmW@bReXPB7vlmb{q zj>RxrW`JqZUmb!B-LU}DvNc;Jh-^gKmMMkijg~3JjGWM_=?qS1yfv-0BuSvR0nm9F zv!(WBJ&${~RF$NEJSv;n@Vq>lSJ5CSp%zelg!+0K3MJGWiYC%41(MM5vif;O2`^cFmGjQ=$|AgOkL4>#L_C;cYV9OFXx7&0qG;+nY&MA?X>fJWC8=FXed| z4T2I$0mVlo-#|m5M3O_%L^69O)jP;h_=;!581~MjO0b4+a&gVQmHP;Z326-rD9){% zBb(|oBqU#&MYeM-Wm9FLqkC8JbrL%dI+|)CX-1m0b>h*xiuPqx{hCHNc9Hu9wDVl# z{z8MGG>U-Yqfw@xO|I6IM&VG}qEQYYN1-#A+D(j`M%fpJ7vY*)qbwmYA!mYs;;T_! zMndwX*-q6cPCB|Z$~h!<9&|KyM7&1fQf$`Ni5Jx~W z7C}1|A?7MXHS$Q#)!!gYl|JW+r|ht_t1E!HJniaQ_|$aX6w*`?e0dq7@!B~X4edHa zNonxd{7;w}lbo&~~G~5X3T{)Jxl!F@(bCscy!4h8o zgEzet@l~4a-X#2~n5(nviQw(u?0O=ZtGhEnD)-m*4?-{87K#zFa>G5)wWr%Q#nf{wc-gZ*|_v}nq^PlP*CepSfboeDW|*Wq2z$bHu# z{-U40hYRhF#T)T5V57!pcN(wxLP3Eyj2#8rpLtE6l=Nd&GnYbf}-?ZDQEr=F+yysYU6d~=p8NL zS}Lnw>xif7yaVWh16LLBDmW(uRYhHdCg~&w0aHsm$A_eXd(p!2vwPNX`ms8>da1Sr zZqmxJOCUR(J!puqS(W|JB<_l(2`|i)swzndikl{-HKS`bQzs{1nE4kNGQTkMulR{wn8`k6 zx^9xC^UBp0^lauUCr`k=`Dn3G;&($(s67?GBRWO1dD(kai1q`^|`h7T#cWwF^wh`ET=tM?OjsLI^v zSGNX6ewyFZA1P!`Baw;U;-3uds52`17XL(6SIdN)BMmb#f$h<|f1lrsJXd&JoDq*# zrN+Zt9CRxjaW-8QPIj9wgIO(AQ9Biv)893fLD1CCl_bq{%u;y>XM)KOYfTRaM;+fz zaF%anys<(>ZWrNONmNMJmVn|UnSDjsEhL!C6q8Y!Ruk@05bP5qCYcFlCEV>Gq4?4( z;!kZgqs2)lcf#GbNDO@FT za_`ujv_Vr`Q`VSvlVt)?VH_tEH|zIq8Hx|FlCPJ_6MyfoZ*Ik zd|#_jXd4$D)8chxZUc9RHpZQB%RzIYmkS{#D5p?}1m!wl!E7lg_eEd?56V3VpJIY? zj?Jcw&beM15_P_4VLG{~1jAsaSnVNNlX$Db*{2Fm5pzc~UoQH0g?pN1jQ8YDfiPQ< zy>bD4)+|t09PSUj?)^DduO7aMti7G8t=^-gbnD6>jG%P=uW?`iV;>gyk9Vl>7pdqh zLWMuYMqTA@@N9s8z!fL_+7uPi6ECR=z7csA{6y0s&BK(ZBbNuG7Ce4SAZ#q8kjp1` zkC+id-RB_`rT$3C)b8g{7NspyB69dV;L0M0yXW$nb&8Mmu%U6)2*)_+(c_wIu@l3y z7QX#bjcWEke(4IeL1*wRLYG)BEmKUxAGwa?Dl%`%YQ(uEBqH)$;eJjk=@3%8ib)3$-jrH=+%Bo@ zxB8+9Eu^-{#uZ;xm)f8kD!VSWiILg?sO}}TA#n_;wQ1v$T1TCIP--KrSM0N!c!};A z31mVkH$<22^&u|hfAp9TBEbMPJQYO10f+>HAA9sF5)9;`CSPPmk6Og;q>1Bhl;=`1 zjbETrR-`mydGvqk?u?&#_Uv=9gZm@g4)agd2sLtBHMs z))9|AD#qvmNcGhDCb)438a@o7YA9--ZTe$YBU8Y>wVO< zNP8=m%NZ&+;jW*Qx_>gHO!~N?qH6GK?8c58E@TF>8kt)}xrwX?;;d#I5fw(9j+m2x`rHw727HQf z#JHxf^u*--P}5v7a-PB-;ww01*iTQpS)VMA8)5af2wf`r$Z4Ng~Nqu=JGoj4uz8~1t$FoN@;|I z7fvv2Aa-v&X_6~bYY%62D_KS8%WbI;7JIl+XyndW#$R;n0JbViaT}5bF(oy2Z}BQA zl$y?<#s+8VeOti9UIH0M*%sPf;$n|p#a=?nYA6zRvU2kpi%-2da4N~HUDp!Ab9Q5i z7^W%$Q@2xrBMp{r7E$lF62=v)HYg*l!XEmY2GgEBoNKDEtAz;YWg|$b49g1UtzAk&;R77tb9) zgP<~I1QZ`H!y+0Al?=e4Xa}G7byA&^+YwO#JI79WIe{FFZjl(SW$QYnNYX&NQeKX6 zanGIIxSGU-%o-3-d{SO6BBA)wtL-T-PCB_WwyGosK6LVt@~dbll$4X)K(kOOh3iQu zzTAjNZ<~_!oJ;|aHeVNvWRzP;MB2rakI_&(m}08YD??na)R=NF4TVypf?_@b_Ej2+ z2QJR(J_T(z4VlMCFqtKcgJ~h{n^Vf%3dA2oNU=QqH;FK5`Uxn<&r-Py%}L8c8CkB8 z^?zt6E1?VfBE;Z0cnCYF6u8V$q^HiRo(#N+%7g&&H@ZuRc05Qmr)# z^`T;|ap`Ea0r9QvxS3zCBWki(7dYJ+IvMB*z7BQlWxtqh2e%D06QV;^l$_EZDP4Os zjbN++b|kd(G{8=#K~S1QK=IKW=h9Fpso+pF>P^8N9iv-}xy620MBGTi*11cWTM_et z52FQjaxr6)uT7nT*jJJWlj=l3@lhvlrlC;kBn2+-q@g4WPGG7NbOXpaH-&vsg7QHc zRt9y#5ly2`=(^@1F6YK{r^i+fi1p&cgj3Y8BjJ>XVSn9HIOXfWLLN@}HhhW+rwH$W zjG%PJBA^9L?~ zfT-UQI0I3~^_rRAr=qP0!m$1k+QddjV!*Z zzR;&lG(8;p)>HOS(Kr)LIe83JgVmS_EB2xnX}0;xvS29yME6t%%qBZPB!F6niB@F+ zdqxW42FF3=6#0;=p?X&0Hh1sNNm0j-N{0Hfpy^9pEof%tNH?;8y%ZWz=@`1`rlszd z7N{HCs)??C=CPRtOHN!^2aR-Ae5z{>_&t(@?Wn^N?nx!7M8R$zZ*PTbYiBSmfhSm1 zq_$3GRTHzam#Q6LE|2>artHrz!|N7HHB70%-xJilzGW2CTYsc*{0E9UwqG`M)q~9H+p13xj)E87GJfM8S*gn?WKQ0@)!baQ^zI1 zjyeYtj90|68+wWE#}kMZ5nZ}hk(IrhN3SB20&OQMHi-ieS=mprs_~4)s(*l(l4dTt z6Rd5kKm_)s;qGpf=h~FW%Eq;f2lWqLhhlG-KT96kG#Y4p?cz=tjo6}bHfY;9+AV2rmO|1L_HZI6$3&%#}AFQ|g%A?_2s`cis-c}qM?BU;f&MOX- z&SpP!=Z4|7J^3?!uJ@eRR~#(X*1%_W+Y?~IY><5UA(?33oDmLQnkU*5HNQ^dQ zJ;y|>T;(XwjaK2-aP$X7m~|m?>4W!*Fu{4)jUBvS-V)0NtCb6QZ`qv^8c|0D;-~RC zQWoS_g>OLO8y|5PfOei<->ozV%Ihnj_;`KaNJF8VcN~i5_3f}I>M%TDwbg4Wg1(a+ zhps9O+rbLBM?Apu-CAOd@(F(%^rrUK&o!vukLGLI7>v@k{F9g+zgkP}fN%WV$a>Zy z6?3^BQ@Sf6q*Jhl6jA;~(era8J>$pxX*Le8ypRWJ5R`xlC_V!EI1PmoP!7cq&~PPS zbc+*ERZ9`{SL8S{3+TQ~K<#xZt9<^PanD?pl6aj)KIyuq>)WZ;&HKwjw}+b%mM3JN zS5k{_W)3hY8TG+j7?Q0I^nu8%K5^rPnXaC04nHrC6;|9y1QF=Fjd0N0Olt+-<$G-w7#76MO zvEaJ^wYj%#UT7YCx%`7ZJP~?8OUuWDzvPtBdZRj&)2vi>uQOP#m0EQeFM7^xf!imF z8-ZBi6%#32DNS&?w;bZi!E>D_oXH0yUMcW!`t$Q`yf^;UsR$+<`WIrOwmbB@xnY;f zGqtPimC%uY;fmE~GY3A{%6!E&PiaU~Pnr9xJCa_Z2?;ikvO`gX&iCQU!` z91AUJ9Ymh1@ir|O=Hj6%Gn8iG-`UQ_8(&qo(b78aZ-Bma{|?h2cuRzCh=l|*d^&9XE2gL9;_;ykwdI%qBHVXv=D^U+QvdCyQ~g4CPO{w zlwi_qydQ?6OI$pQ5eFf?I~Wc?Y|{^kkM+J1r8mYF5>qYaSH-ITwBXTW7n1xRZ0zw> zbx96xhsr4;CEtbWiIN-=&yZxBb}mVF)R~Wx><|M*B)gH9JbylcND+Cadleqaz@t~; zp~S_&(?hwQRZU*KrmrnEMr*_2D^J4jidF}&Hw8FeN{|3z-Ri_f)KAck#b#-5xR?1dk4%`%=T?9NVwonXqD z*vOwL>GmZ>?-8}2On8VmQJZXFyrBhEaQsysRRzb9d~N3Vw6(=b9Wpzm9VNahK40fe zRc-RU0UP=A`Iz-M$4;%);FVBtDcG6fjVi9$SgC_vZLqhN2($2*$hOV26gyPs5=;G& z!t}OOn2I&`y^JOCjP@6`=H$}WzA;w60TJ3#V=Q?*kfRHxDSu@yKW;w z%Y;Xco&dCX+>3qMb&;bZ`pTug&4vC-t%Px-ZH19yqZ}JO>I$P3u4XMnkj`-Rmp4b% zn}etcoXxu$hd5Z-*i#s+f)B9gT=>dDM(p$hs;Uezqi3zzV9r@OX7uN%RygNKoa5cL2SGc}7*Y=nf^yLdC_XOwWi%AZMbDvVRP5k0QBl~j zYlQX0at*H`N1!_~jCC<7den+*_$%hfa#N)`l^ zs9gp8p27q|&7CF*CNsn5jYJoKtg#r5j=BCPO=`2Yj)op9+#isq_G(zyjKw%rq#27* zr?}iR&OX?6Pg^(;Ib+JfWDLiA!hfp;(Ae%|x`cfc!rfxQu(a=J`}a z6CRdlv627I`?!$dY+I1azj7FMHW$I--11O!lht8R#GwV zf;3VgHr#Wdkt0Ndk97%iC{Hs)GnHW~twZrmjV*8WM@y`5VlQN4i?6C1J!!)+FNVH# zUjWk}b~uI;$3Qgp9L0((7zzMU+rWTHouha~7O-nl5H?s2l~Y6q&V%Y%2pfNfqLKwg zPs(xwOiV4?8oN9T;LD&9WyR=1o0hg$W~6QG35tKnf*~g@Sg%HC2cPO11AdR3pm5aL z8v_NFGE{2AZV+!sh6^3M6`7fafY629OxR8|DCJM@zDe@`HgCg~_ZZI<*fv?w?qepgt{ zy3iz(m#lYSBY#;}J3QP_TNk<5@e7023UvKj$GL0aRPBJaymVJB3{ z@z^K}c^%roLGg3F$CP6FMiQVopA#qW*^E83)Cs1a=}}e04UvMWm`+b-5n_=WA$PRI z-qeW@i`=}r8|AryL55h+yyGF3YXL1DVqu?lU5MpHeDgj~87$G!mHn;gO4uScu+rSV ztK$vY7?a+`aH36zubo4si$lq{sc zB}YS{WI;fQx@OSkVG~WwogNZQW`?&jY{Stp4UwctZPwP&(8D&LWuj#+5_VlPY~xgi zt%YqaXbT708@5>oW1_YZ)+rh{RmMAPb0=`m9kx;9iG*!#f=1cHHVBf3ZQcMB3h=88 z+w5hn%UZ-nE}RfDxEWfYf#MUfIr@}z5gS}A!(dIe#!4?-?=6+MrQ~s%;O&SVSO|dV zb)vm9Hj?a$>NvMpE5gfCO0_T{QGcYyd26b1ihbmJuu+#BF4_RI;WUFhdM;k-X(R=o z8CoLp-6G6a5=KGzOGI*Et=^m+KFRgMrDig}(z<&}vuebyS$m>zy*m}I!V`5DG-6Sb zh)WZH(T!zT9hOC1nkg_-BelDZSI43BbOs+|BaPR_n(qP`=(&x3mq)K+8!Kft6phH6 zM%F3kWUow4O>~;Ec?s-i+3mgjoeRA+e77b4B5m98>0B}835(w}rOhdgZv>I#Ng}-1 z-%C}eQ`3|K@kS7GkN+1KG~eU@6+f}-L)fPl_V{ArxAIPqm%_acg-xa5QmqJ?ld8`M3FJ@)pa*nI1e%T2-=9Ng?gI^sE6kn3l6YaHUWwq~g ziTiI!NG9*Fa^HgE&eOqB)rdMQN#5=ee15 zB{icD4RKGuu~&2p4#93B8+(-GL}`g^>?5t*8~d=DRDLtm6NTULB!2OGfTN+E=f?gt z8bl`?DTv(fJ)57^7EpXPrt4@Z)Mk!DX?bHmK#oA)^z5{a{YDrPaLI>$my@F>H}(RG z&&K{b8cHW23n_59nTA5if`H<+vHt)GCNsm^xv}Tym^MMuq&92oXy_aJBLVrO{j0gL zcdA2kV}D#LtD-vswXb^_RT}W$$A^o@W?bJhW`REF!49r*o&*HRJqgd^C;Tcs2?tXqg639`%Ql$iGoiV!Tj9vF@iOFM z4xr>h3s$~S5{})W84EwN)Axo;A$>z7$CF-7S$O(14mX5d6V;vrdOxq|{dDBeVLLDC zn4gMn!o4vM8~KOHj}1+)n50iM;V{>xAunZ6VqrTn!mdcW?ub-a2}i~vXyi!u#K*c9 z!=Y%+jKqX=&y%eF%)N*$sUqETIU8GiRo$jao9=ls^sQ$LFnwXCdvf9!h{mRSUYG?# z0U&C67%-`H&q@}s11Sg_yb>y>NcY?f)w2*bKHc-RSy1$(ESc{44_N@;2#qKsNf+9* zv>nSx+t_r^f6js-CoT9jjdV|Zs%s4RJ>na6)R`Zn2Gt^GH;T7a!$qz$I6Q$1n%5Kc zdXn?)8NN52%c>^(*~7%Q_(ZtJEpo+cIUK53g1(K7{Fk5wD{@XtI9J^mz**%ms*zYv zG2@r1hAlFwe$L27V<K1fQ+%OVV{eCbyN*`*Ib{~(bLQatAspN##8X{C74N!OToNc9ipDP8qOK>;J za~)55<8g)M-uN|u7Wc-pPc3-kg;)DFGyGOwa1|WwKLlPvc^LdHgug}bw|K)?b2?le zSgXKAC3yD#-sUmpZi!#O$X%-amA*!-FMd(D1*SV_!5jZ$y63zYD-N?4&fE1hx^r+Y zZ)gO*DOUr3Qtzole0iu?(7J@ht^Ito0eAW* zRa0toOGttAZhu9+U=+Kt-Tto^!`r1oDa1jVH+BI2D|BY2;S*7 z79?c~axfYFjQ21GnaU)Io$<@9?ofU`>sh-Dd@2*{1lQalQJ_QsX`TQ#lg_2JWMU&4%R%#Jvg3xZ$bnj?u?NwJZFQ%5G z%(8q!bRG6w#IxRTu?HaH8B)uUIFlhY0mUbz)AGgf&1s65A-5A+vrIj7!D?>DD&{uE zhq=dx%;k1U-P^>@xE7889@K8uO5t@gV;o~{TVZW*$K2FVA~Cm%p;7jj8-nC9x7&d@ z0e+P+H;jg9`CP)542^m%>L#sbhyq;#9r#AwmN}zt9F7dRp#=t;x?*ixt~vlG%Vh>^ z=>BT06D8vx@|N+?=g~EBH(S7o4+w-{?Hk{C+~-nJ?m6yv`3yE9{cc~IVy7SH6E7e? zQ3xqYO%AS4>}#+aT2?9{f-rXjjBb4Sln^vqrmXOtv0su7NDYi;GCh`x5F&*4O=#o@ z;o)Q58{kmeW|T?oRbZ92HzrS7y_wqqefdJ+76H6pvXRAC)%}ra19-oMzIEp#Q$BV8 zFC>i-s<0{J3RO7juy-O0O+pKS(g}7q@hf?#6FP%O63B*C#kKlhXH^rWdIjGc!E2o( z=Dxash&#FcJ$aoFb(9GN_&?>LJ+-QMak)5_LzNL)nQ1 zS|Aj`><+wyyeolV5h1606?g4F=rMIf2m#j*&k({re3tzM79P`|o)4bao;5wFKJixbX$=@wT9FoMT8-K%Zxfq~%$N$7emN3h_W% zrxFiZO^86Bv~1lmJKLK1J~ue!#>Cwy&$T)k=tI5F1AR~9CwA-pOPf+iB$h&QTu4yHETq8Ytuz!$76cS$w7|Yu;}#N3W`?)(01ijTv_q06wOLz7 zLyrc$7?4l$KAX`1r#jr_(SWav4-v00-U>Kh} z8lZ*}i3Uu8M%kkQ2$Dww{)nIOt4A~d7iBFPAXjeiK~IAYe4_zNJfZ>712`#LsnzdU zF*La!@YwoHJbyp8(7;LpT0f&`J-+__xkbu6*0rDJ1et}6{CC|u|NPCuR9Fdb=ONI@ z;qAo7x|_)1D=?k+3FmKmt^R0P6+X@5*x2H$>LyiM_x&>HTX!iiZDG6bIdKd`W6$55 zmjy!sAZmFSFsbu5eObU>l7g_oIZ!!;v$zD+vk*4^{LK|vQ1qlMdH$xE1@LxgMA=BX z(59vB4H;=0d;aDFSuo_J1y`Zr>BpzK#&CK19d(k=-`I`fO;uFZ!ozoP0vE8V@bIBt z_w?{}u&Ql2fAgqCu6Qk{EkO@sBmX6ccCm|C6kSPK8$U@kV8MnTF@n*!2{s^ZZDvCX zKm2YRP3fhFEd21#rDKQ7vyMz~tgVTD_1>axLOhVx zsl`Q79Q^sTqCaE+(K{4UNVANqZT96jkU7f^g0=Kn!Mp=2QiEO=_9snhv$l?g?l8X^kO%LI(o6fe)+?dC)Ty`W zqLx%j;diBp=l4+tYy9Z2MkZC58fu&y+ffhC+!UhoY&ZDQE;RqPcBq{<|XL zN)oot)KtodgUOiTe-dMmx&KIHrw^eoCXpp|mtg1dvsC_BbJB7to$yJKbdZL!61s@o zym%Zu1ov+Wp}Cxfk}NdA`8qCB&}x+E@GlCZ>u6YgHb%{P_0f@$YOPVI4;5>TOGm2> zIM%)$w>|51MAK*xx~>^=bJ|&E$W3Kh$IKIEJS!4>h$KPwdBVVCoG0&xF;Ux0>m-bu zDmyfrDNXFFD|-7JTHi~#^{uX;tAYM^2f);LA_1@qpi%Y!7=q*hux|l{0{kiiV0+sp zzZUY6COOQ*S3wiskk^8<`L%N_ti?Buqi}gLWT~@T)59|^iS?AQeaBnaLQg{1gxhKX z86OjPz-l|b(X8L4BAD=9J&BD-S7MgaE4|@Y+_&OsC*i%ywHaHq8rwDwV1=X_v zF3kdX7#dLvvM#h~XRT57;gxMi(zLl zIe`;cRh-}2ja5xNzjd70kmmBZ!(vCa&M%ihf!FW`QTQ29=zzGc`&w$e}S=F|Lh3Aw^X^j^e9ICM8W@01Kmivje&uQ+5nkQ#8=ccVNv_Q`|@+-mWJh(`e}o)E!4?Ye}BmktdM z3|22IpkJ@R{dykvkE(ZpQO#ROl&Dkv=EaZP5yx*IWyuig!X=g@p!LzCeHLi;tY(<6 z1jNr^*#t~iWJsg zWLxz~?2KQE^x*j(j-GWKv91~Vatgm0`Z}=FkkbNZ*8pEY)Q^vIycGQWxSuQFFifnc_@oRcG z-#df*63B*Cg*OOg+;e~X&mO&s{jHqV?yaiLY_Y$U`ql7$@^P=pm*Au##j-!S-ur?>GVAKe_=h7^rPN& z{f0Q@%!Y-9aSh7VBk&fx!OF&-!eF%z-f4|l-n($edjfD*$JA61^p5wKu>ck!xN+xV62JKE(yO4I=k9lq20`t9 z1r(p%@8vWUYWK^bXuIERH|{ja5$GCRUxO3hP|?bbJJ)e8`Oxn+a`a>pu7KimfZ$FV z3MC6EaQPe!g^~pUC7S+&_8B{=qjbZAB$&($Z|4C5j*e*oB~5CxwvLAG16dEq+ujws zuIU4Ds>6xk19^IU__%9)AWwPl1&vwZ193BD9DN{X!T8)h5H*yD59CN_l-&n{Ah{3Z zkTQJ2uZcboGy^mrh+MzHW;_a-`}#nRNc4e3Z{11NMk%93fLgqPr_aoA*E7+)9HBV} zR6bmwGu~c~WvR#}yc{QBBY!W)&cATy6{)ZiK8@AT$l=q#$GTu8`ZN;qjt8v%%$x9-*8N&>PI*5FJznx_bH;uy}G*u3M{WWi7Xh#DRSOe*jA z#w=i)DF_=}0hLqa9ls5#XCZ8S-tmXBpy)|iGVl1)Spa_$8c`;aF0^TB``L`Njm13iuEj)YD%5XQzb8#U(dpKFSXRo7z^AJ6I?9;CE?7gTu(x?noE-%#zeS^h%J@zJ# z{iS2C$7<0+e#&~QtGxP-(Pws5c6Uxa+)kn_JX#U9@MN!6cnU4{9u1wjZ zLiE!6+!SeomtZ%x&+Sw-oEEq)n64$JIJy;;)ZzKrW+h1p`>`U#86+X%_wg&Cou_kd zJq?0#$OtGt&ZT}D3gwXDP&DTp^M}RXPQ`vk625)XZeY5>fB0hW&R`2U1l{a3mgS@j zl~%lSHO3}$;wLdRe(}(qGbgd0wc8yWdQIsw)MF80ovVbEYeFfm(I1q+zMCX+JZ?9$ z@p`>U_6`~ZC9ndDkHFqTL!ktgL(v3wwu{n^T@-p4v8r}N=quzfe1*0P4)-&m7CFn! zJ+&n*>zh6Acd_guDI}9F(y;g*iA6xMOhAe5ihx+*Oy?8)S0of)TAgO6ptUl=oiyqW zY1FOJ=y`JVJ~Z+X>zM&%bdXMdk`tgoG+YiOq4;tlBDEbtY7tn*1TiN=xbDME%mxjK z9uf%;hM1Z#O~diZ=E=s7&+8~*MKW@hkTQdNN_AaARja@(8NiQL_KL? zXOVe7c|EDG=>6oI!nPBV6{{uzFI0YqK9eQ8cv6Ss7tJ;ekxajoIZg*IZAw_`Ke4MU5l7WZayC5Z)TmkTI9o5{5#6kl4k zbu;Otk$W>aK#tyrMm}QQprKG=O>)BAOumkU;>(GM)V5(W>0}6Onz$`uY$k6ek?>%M zsj1`FXs$2J+B%K&%_P_BbX{{Z=`@3O&SvsGpw!))Nj0d*X7aVrDEnp-LGsPySAl&2 zewCZadCJxgH$>rfQd)?x6ulnW#BL|8^HQgt!j0KFyH_CuklR$*QX00N;RYjD9PU?c z-5ht)hF7JusW)XlKTL|SE@QYG=BKEFYY~4imVp#s6YW9G8^^@1IY-6>1q!)h4Q`hR zAJ#`oeU*VqUpK>dXtdtQRfhWpNBe;Qxq1Wsg?pU_Dy6}Gpi!}r8!C>}JK*Z4Vy?eF zvaRQoGFV>c46G|xM>mxl-TdLXwNgJgTDx-?C-Zg?8yeP(eXwC-&l zS??>ChKdFLmiKz0QDrwLz~v;dPK-lCCq``BSZ4-TLX_*^>ex>6<}WJte0HVYxX3ym z%@TeuASMMp-YT}*{O@M#d0+r#;gxQ0XIZitmI>NR) z`_0Yl_^}|BNnK44qEYJuh`M}zCu*p9+!f-T-shlb7951#*gl7o%ps;17H+Ai81|ud zhfM0u)8$LZjuz53+eqVQw)I$1jksaP4;nJaN9%BscB&B=1@eUF<4^o~S3$r9Fi7{lO^qkAZ<`8@vhUjvB;U9F7kCo19|JHj-b$Cmu)_|SIAn4~@bs(otd)U_DrsRy#O`9N_Fn3z9uapxK z7;ZsY=|V~IZ^fWx2r_=ksh!%yHOqhtzgAor-}~w(4^bwrKL3$&;xNc=*vS7d$PuOp z;=PM_>#0*@xVaS=HznGpm2fxNkCiy=p9(2)7Gxi2#Lj|D%{_6=O*w7d#9#EhRmht- zARYlV47*+Yq7h1EXRsF=1}(rMcN^JY?^9Q}+PPULXavfa zU>Y=ydLL$4zjKd+^;FI64~96U_cADY1pkEH*j|QJZDcstSIXgViq`kpm25)9mq=|d zJtOQ?sz>dKqS@z2n#J#UJ`L?68(Oy?;z1e&<%bYZeEblP(@?r$L9?Ue(htF*XtX=N zH7>;LvqYzw4e={-%=)TL?Xw~di`gPUR07Pnull)*#crR)^CTkVMq5C+dyV$yy6HlN zO34ksE4iIHOzFO02Xq%<_rJnJFr%G#xdX@t(oiVT6;OOcH%~*MMAt>VX?)$0#FJkY z?T)44wTX5sX((-?-C7z-TH4JB*J?>V?TMn`B{bAFQE-@s(k2RCNkd6X!Rd>*i6iM3 zepl3cGYzp#)O#llrA^fPAPprg^*WSYC<&-PQZ&4qhMSs(ZU^cYX(-7wG&d?q=7d>W zU;lIm>fLNzGL2okuIWH^8h4rVHR4=;_NyiDfN{EAerh}sm){N0D7(uKL2{ShAAxfL zew8l2IfgB*x%s5I3oGMWp}w!1@6hvbBbEazllk!m#CtG`BO`;AKK6de(4FT~RY~@< zq|E7z4jm+26Kf9xlzc`Y0VZ(Ql#^jxGI>BG%k0Wd_;A5`LFi*vQ}SvOe5N zYuQv3)a_4(rNVZHpq%)}AP= z7pB5mxbhBxMviM;@Ugy$b{OyG%_GyLSuI8wepln`wfc1$ctK96!LcEcoQ?U zCOU(I0U_$bBCIO>{kWET`ujUPdKLbDX+F4J_x7?b{Qc5;b2rKd=Ky^A5^Su&{r&ro z;DRw34qviQyUyR=Q->(=V5u-tgRJ0&dcjYu=Rc=B|L&G8!~pJ#8;lqoCe!kFI(6s7 zqoESyVD_;~b#hncRO%xCxo)D@a~>P=xeV9toV;i|>=k-gQynhlma~7XTeOpVWNIQq z#^Xys7<3cKv{C3d!;-LVv$=EQ4E$XRCV`dwM1u|c#V}VY*Vx~cvN5h{2& zc4G%1MukA_Tp1H0qhb|%MTQ}&s9eZBwJMT$#xq5*^(4XK-34o*ooDo+p9Vp>Fa#7I z7jBJ)Lb-uB6fOFo-i6`Vi@<_tzaHcDBy4@L(6 ztYJNCr!Wr@;$~`EU6V#6be7RX%Bb~JN$DLVf#cEo02`{;0nB@75R{Y(C_YkpKMjSF zQVvCv(!JpdI9QLObao4^bxF;CkR!<~v#nfG^C;(*4;_C+j-I?eMnIXP=hsZSQi>pa zQeyWE4TX}46u3;glv><U z=#e^YL4xTQ(P(>W4Wuv`&y-jlPjVn0p`)Rl=bC#O4T6$f0mWw)uA`w)+KfZdwAr3$ zRtfW(6W6WA?6r4*9D~m9owxRG878VV&20*X_S zO~Du*t>>Zj#m~^sNe>Jej>sC(&L((0HRzrydqVv!wdmtJ? z@<8;_K%4--%0To1F@6>;BrP2vFu`98Eqz1M$B4I#Z~(#s=lzn^jIEUf_j*fk=xXko zfKD+W`f&miXY@MX#_;tysYoWm*JooRGJO5DDQeM?@8tbPoNai$#8P2AQ^FIZqJ#)(4?rVFNE;vP{#u73Hln=3qa@cdG=;U*`88H= zrc*~(%qZ3(n0+N1S$tJpho=o@zZUw|gV{{O*um_OG)8#Iri?4R&oR{ISh#K z`}_5kSY>E%KN_CW8?Be{A9!nL-{@em0bk$%4*$8QI$pGpL}GsYDtcq{ZmH5#=psDX5Ey0)K8BnDeA-Oi=Oz((fjk;bJe%offELeYVxJ~f zHWPotYA#D;s;@+%@b5dhq?vJ1zU@d0?K7k}30a_R(L%wiCzE!nwxN zd(>s_uIwUSlOKAH{axv)Sq+*{PnLgE(kGjA8UGOEMiDBQiQU-QM+?1Vf_wK>ve3Sf zR_x8;sDkra@NGs|O@;@wCknsANc`gC9SfkHXW;TBGzcnEC7}33RbEa*p&}6+iblH* zo`#|5>R#Kd^ov)JBhZD!SklJxC19&Lmwf0~B1ca~r34h8sAZjoLdil3TwY5@>&vPscS<@>xI;KI9G^x$nIvP^B;l=%(fIMXlV_h>I=2V9} zHy-wx@!{Cch=+aBgWk9U5f`$#i9L?-usJY3cRWlDB@z$&BbXA|<6#Jr$HRV(pYSUc z55omfi-*Z28D#m-!lHo%E&5_6>n80NQSq<~SFAo8?u#BQg?mxo>Po9T324NdX8LqQ zcJsTiC!iq)Wc{VUWZWZOlSb2!Ol)|c$IiZ-U?c2 zwwKtuYflvK=chtMIOO++Mvj0LKGx;PVZ(U)jE}JTGPeu1ObTawo{cNMs%{0P4OcCJ zzV+=qQvi0jDkO~IX0++zax*&WB)>r1ZWOglAdRw)pc( zsaP-O)<$gPKeyr>c4Df;{jBEAmQ;fjE}XhQ=@Fkcliu*%2}F%&3cH(9VJBGdR&34C_ZanQADjfu{9|y0KhLQEJ^;N_HmWucZ}+Gw<{?rxl`znX;1ArN zCl^cUWTG1hf1Wg4+>P>_yre%58NmH{-^EYtbRzq->->33g$u2LuY)hu)bX;|O*`l1AEcPNUbtdX~4T$>OG~c z#i0=}Fi++GZZMB8!dpkS6bD=G#_~h5v02Vifw^(IavkRwb2w!<68SVppl-34rUUJi zd@5|)e9Nvp5-G@{gf@C6a{oAKl8(Cg3TjQ5yoII}<(E{n3UrgO@Y)I+8=?L&cQ?NUp>?UiO7{p5D|&GziLrCZPCu1CODhP#!c6Mf0Yn zJ$iXM30vQ67^Xy$AGM{Um!~iWnF=Y1o$)KU?nm2;^{gGe+=u6u^%^1Wh*(bJwWL7G zuSyg*lT?f!`zAIXuk)4LXb_Yr3Mf9J_$C?(C5jx1CW@_Ex$h#!l36r&hX3&GjIX{D z%qf>qf)_HC$&3(uy~{;zQzatOd&p)|sMP}{)}JRi5HHrBVd#5_^+PlWN~{GGAF=*V z8VV)W9Ev8^`?$!=>FeIbO~D3Q^5(C}!T8E`gkJ z8VWU$1r#4#R?$#AaB)hVefsS}5{$3NMW$#=M%vBwvWJJx2-gB7Zd{7k0nwX#pr91=_A3=YVhC&Gkhtf_f;HTtZbgokyuZW6i zhZXQ67vtPkz%wKkUE@H=sFTLH(? zP^gJ4p!ndjl7`}ei&N@sD_|`NCi4_+$qL|9GM9*WDgZF;VPuncd>9r=i%G_dOg;{HP*G69JefJ>=Ejcb&UnF9kZ^nm zEFg!$-$M9X1b>S+j4^67inUGfI`F2)O$t+C+wRUBQ$vYlj{SPHmCP{&$uq~E0OADr zRc4MI7#E$Jpi@#zcGWjCQZ3-s|i7B9{ zBwnW=#mkl?D>KauWr;)-^Pv);{kQpAyeL2-KW!gqId3bR?�wRciOWCo`jX6YEb(-&_)*-Rz~72efp;GB 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

    NYaKc5e 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 bQ-wHvAlOUa>NUsd%U1CbDCs7JuJ->0-7O`M diff --git a/graphdoc/docs/_build/doctrees/source/graphdoc.doctree b/graphdoc/docs/_build/doctrees/source/graphdoc.doctree deleted file mode 100644 index aa86eba0971f3b5b580d15ee5776d2a27a6bb11a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1034921 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∾3(NHM8=1{WrdV&NI&}%`0 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 AhX4Qo diff --git a/graphdoc/docs/_build/doctrees/source/graphdoc.prompts.doctree b/graphdoc/docs/_build/doctrees/source/graphdoc.prompts.doctree deleted file mode 100644 index 9029bde3e1aa4163878e882d6a867e61f0a86001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465284 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 C16$t! diff --git a/graphdoc/docs/_build/html/.buildinfo b/graphdoc/docs/_build/html/.buildinfo deleted file mode 100644 index 4c23db0..0000000 --- a/graphdoc/docs/_build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 761a20f1687480008456d37705426b34 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/config.html b/graphdoc/docs/_build/html/_modules/graphdoc/config.html deleted file mode 100644 index 160626e..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/config.html +++ /dev/null @@ -1,794 +0,0 @@ - - - - - - graphdoc.config — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -

    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.config

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -
    -import logging
    -
    -# system packages
    -import random
    -from pathlib import Path
    -from typing import List, Optional, Union
    -
    -# external packages
    -import dspy
    -
    -# internal packages
    -from graphdoc.data import (
    -    DspyDataHelper,
    -    GenerationDataHelper,
    -    LocalDataHelper,
    -    MlflowDataHelper,
    -    QualityDataHelper,
    -    load_yaml_config,
    -)
    -from graphdoc.eval import DocGeneratorEvaluator
    -from graphdoc.modules import DocGeneratorModule
    -from graphdoc.prompts import DocGeneratorPrompt, PromptFactory, SinglePrompt
    -from graphdoc.train import SinglePromptTrainer, TrainerFactory
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -#######################
    -# Resource Setup      #
    -#######################
    -
    -
    -
    -[docs] -def mlflow_data_helper_from_dict(mlflow_config: dict) -> MlflowDataHelper: - """ - Load a mlflow data helper from a dictionary of parameters. - - :param mlflow_config: Dictionary containing mlflow parameters. - :type mlflow_config: dict - - .. code-block:: json - { - "mlflow_tracking_uri": "http://localhost:5000", - "mlflow_tracking_username": "admin", - "mlflow_tracking_password": "password" - } - """ - return MlflowDataHelper( - mlflow_tracking_uri=mlflow_config["mlflow_tracking_uri"], - mlflow_tracking_username=mlflow_config["mlflow_tracking_username"], - mlflow_tracking_password=mlflow_config["mlflow_tracking_password"], - )
    - - - -
    -[docs] -def mlflow_data_helper_from_yaml(yaml_path: Union[str, Path]) -> MlflowDataHelper: - """ - Load a mlflow data helper from a YAML file. - - :param yaml_path: Path to the YAML file. - :type yaml_path: Union[str, Path] - - .. code-block:: yaml - mlflow: - mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow - mlflow_tracking_username: !env MLFLOW_TRACKING_USERNAME # The username for the mlflow tracking server - mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server - """ - config = load_yaml_config(yaml_path) - return mlflow_data_helper_from_dict( - config["mlflow"], - )
    - - - -####################### -# Data Methods # -####################### -
    -[docs] -def trainset_from_dict(trainset_dict: dict) -> List[dspy.Example]: - """ - Load a trainset from a dictionary of parameters. - - .. code-block:: yaml - { - "hf_api_key": !env HF_DATASET_KEY, # Must be a valid Hugging - # Face API key - # (with permission to - # access graphdoc) - # TODO: we may make - # this public in the future - "load_from_hf": false, # Whether to load the dataset - # from Hugging Face - "load_from_local": true, # Whether to load the dataset - # from a local directory - "load_local_specific_category": false, # Whether to load all categories - # or a specific category - "local_specific_category": perfect, # The specific category - # (if load_from_local is true) - "local_parse_objects": true, # Whether to parse the objects - # in the dataset - # (if load_from_local is true) - "split_for_eval": true, # Whether to split the dataset - # into trainset and evalset - "trainset_size": 1000, # The size of the trainset - "evalset_ratio": 0.1, # The proportionate size of evalset - "data_helper_type": "quality" # Type of data helper to use - # (quality, generation) - } - - :param trainset_dict: Dictionary containing trainset parameters. - :type trainset_dict: dict - :return: A trainset. - :rtype: List[dspy.Example] - """ - # TODO: refactor to enable the passing of alternative schema_directory_path, - # and the related enums that must be passed in turn - ldh = LocalDataHelper() - - if trainset_dict["data_helper_type"] == "quality": - dh = QualityDataHelper() - elif trainset_dict["data_helper_type"] == "generation": - dh = GenerationDataHelper() - else: - raise ValueError( - f"Invalid data helper type: {trainset_dict['data_helper_type']}" - ) - - # TODO: refactor to be more ergonomic once we have more data sources implemented - if trainset_dict["load_from_hf"]: - raise NotImplementedError("loading from Hugging Face is not implemented") - if trainset_dict["load_from_local"]: - if trainset_dict["load_local_specific_category"]: - raise NotImplementedError("loading a specific category is not implemented") - dataset = ldh.folder_of_folders_to_dataset( - parse_objects=trainset_dict["local_parse_objects"] - ) - trainset = dh.trainset(dataset) - if trainset_dict["trainset_size"] and isinstance( - trainset_dict["trainset_size"], int - ): - trainset = trainset[: trainset_dict["trainset_size"]] - return trainset - else: - raise ValueError( - "Current implementation only supports loading from local directory" - )
    - - - -
    -[docs] -def trainset_from_yaml(yaml_path: Union[str, Path]) -> List[dspy.Example]: - """Load a trainset from a YAML file. - - .. code-block:: yaml - data: - hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key - # (with permission to access graphdoc) - # TODO: we may make this public - load_from_hf: false # Load the dataset from Hugging Face - load_from_local: true # Load the dataset from a local directory - load_local_specific_category: false # Load all categories or a specific category - # (if load_from_local is true) - local_specific_category: perfect, # Which category to load from the dataset - # (if load_from_local is true) - local_parse_objects: true, # Whether to parse the objects - # in the dataset - # (if load_from_local is true) - split_for_eval: true, # Whether to split the dataset - # into trainset and evalset - trainset_size: 1000, # The size of the trainset - evalset_ratio: 0.1, # The proportionate size of evalset - data_helper_type: quality # Type of data helper to use - # (quality, generation) - - :param yaml_path: Path to the YAML file. - :type yaml_path: Union[str, Path] - :return: A trainset. - :rtype: List[dspy.Example] - - """ - config = load_yaml_config(yaml_path) - trainset = trainset_from_dict(config["data"]) - return trainset
    - - - -
    -[docs] -def split_trainset( - trainset: List[dspy.Example], - evalset_ratio: float, - seed: int = 42, -) -> tuple[List[dspy.Example], List[dspy.Example]]: - """Split a trainset into a trainset and evalset. - - :param trainset: The trainset to split. :type trainset: List[dspy.Example] - :param evalset_ratio: The proportionate size of the evalset. :type - evalset_ratio: float :return: A tuple of trainset and evalset. :rtype: - tuple[List[dspy.Example], List[dspy.Example]] - - """ - random.seed(seed) - split_idx = int(len(trainset) * (1 - evalset_ratio)) - random.shuffle(trainset) - evalset = trainset[split_idx:] - trainset = trainset[:split_idx] - return trainset, evalset
    - - - -
    -[docs] -def trainset_and_evalset_from_yaml( - yaml_path: Union[str, Path] -) -> tuple[List[dspy.Example], List[dspy.Example]]: - """Load a trainset and evalset from a YAML file. - - .. code-block:: yaml - data: - hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key - # (with permission to access graphdoc) - # TODO: we may make this public - load_from_hf: false # Load the dataset from Hugging Face - load_from_local: true # Load the dataset from a local directory - load_local_specific_category: false # Load all categories or a specific category - # (if load_from_local is true) - local_specific_category: perfect, # Which category to load from the dataset - # (if load_from_local is true) - local_parse_objects: true, # Whether to parse the objects - # in the dataset - # (if load_from_local is true) - split_for_eval: true, # Whether to split the dataset - # into trainset and evalset - trainset_size: 1000, # The size of the trainset - evalset_ratio: 0.1, # The proportionate size of evalset - data_helper_type: quality # Type of data helper to use - # (quality, generation) - seed: 42 # The seed for the random number generator - - :param yaml_path: Path to the YAML file. - :type yaml_path: Union[str, Path] - :return: A tuple of trainset and evalset. - :rtype: tuple[List[dspy.Example], List[dspy.Example]] - - """ - config = load_yaml_config(yaml_path) - trainset = trainset_from_dict(config["data"]) - return split_trainset( - trainset, config["data"]["evalset_ratio"], config["data"]["seed"] - )
    - - - -####################### -# Prompt Methods # -####################### -
    -[docs] -def single_prompt_from_dict( - prompt_dict: dict, - prompt_metric: Union[str, SinglePrompt], - mlflow_dict: Optional[dict] = None, -) -> SinglePrompt: - """ - Load a single prompt from a dictionary of parameters. - - .. code-block:: json - { - "prompt": "doc_quality", # Which prompt signature to use - "class": "SchemaDocQualityPrompt", # Must be a child of SinglePrompt - "type": "predict", # The type of prompt to use - # (predict, chain_of_thought) - "metric": "rating", # The type of metric to use - # (rating, category) - "load_from_mlflow": false, # Whether to load the prompt from an MLFlow URI - "model_uri": null, # The tracking URI for MLflow - "model_name": null, # The name of the model in MLflow - "model_version": null # The version of the model in MLflow - "prompt_metric": False # Whether another prompt is used - # to calculate the metric - # (in which case we must also load that prompt) - } - - :param prompt_dict: Dictionary containing prompt information. - :type prompt_dict: dict - :param prompt_metric: The metric to use to calculate the metric. - Can be another prompt signature or a string. - :type prompt_metric: Union[str, SinglePrompt] - :return: A SinglePrompt object. - :rtype: SinglePrompt - """ - try: - # if we are loading from mlflow, modify the prompt_dict with the loaded model - if prompt_dict["load_from_mlflow"]: - if mlflow_dict: - log.info(f"Loading prompt from MLflow: {prompt_dict}") - mdh = mlflow_data_helper_from_dict(mlflow_dict) - prompt = mdh.model_by_args(prompt_dict) - log.info(f"Prompt loaded from MLflow: {prompt}") - prompt_signature = DspyDataHelper.prompt_signature(prompt) - prompt_dict["prompt"] = prompt_signature - else: - raise ValueError("MLflow tracking dict not provided") - - return PromptFactory.single_prompt( - prompt=prompt_dict["prompt"], - prompt_class=prompt_dict["class"], - prompt_type=prompt_dict["type"], - prompt_metric=prompt_metric, - ) - except Exception as e: - log.error(f"Error creating single prompt: {e}") - raise e
    - - - -
    -[docs] -def single_prompt_from_yaml(yaml_path: Union[str, Path]) -> SinglePrompt: - """Load a single prompt from a YAML file. - - .. code-block:: yaml - prompt: - prompt: base_doc_gen # Which prompt signature to use - class: DocGeneratorPrompt # Must be a child of SinglePrompt - # (we will use an enum to map this) - type: chain_of_thought # The type of prompt to use - # (predict, chain_of_thought) - metric: rating # The type of metric to use - # (rating, category) - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: true # Whether another prompt is used - # to calculate the metric - # (in which case we must also load that prompt) - - prompt_metric: - prompt: doc_quality # The prompt to use to calculate - # the metric - class: DocQualityPrompt # The class of the prompt to use - # to calculate the metric - type: predict # The type of prompt to use - # to calculate the metric - metric: rating # The metric to use to calculate - # the metric - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI - - :param yaml_path: Path to the YAML file. - :type yaml_path: str - :return: A SinglePrompt object. - :rtype: SinglePrompt - - """ - config = load_yaml_config(yaml_path) - mlflow_config = config.get("mlflow", None) - if config["prompt"]["prompt_metric"]: - prompt_metric_config = config["prompt_metric"] - prompt_metric_metric = prompt_metric_config["metric"] - prompt_metric = single_prompt_from_dict( - prompt_metric_config, prompt_metric_metric, mlflow_config - ) - else: - prompt_metric = config["prompt"]["metric"] - prompt = single_prompt_from_dict(config["prompt"], prompt_metric, mlflow_config) - return prompt
    - - - -####################### -# Trainer Methods # -####################### -
    -[docs] -def single_trainer_from_dict( - trainer_dict: dict, - prompt: SinglePrompt, - trainset: Optional[List[dspy.Example]] = None, - evalset: Optional[List[dspy.Example]] = None, -) -> SinglePromptTrainer: - """ - Load a single trainer from a dictionary of parameters. - - .. code-block:: json - { - "trainer": { - "class": "DocQualityTrainer", - "mlflow_model_name": "doc_quality_model", - "mlflow_experiment_name": "doc_quality_experiment", - "mlflow_tracking_uri": "http://localhost:5000" - }, - "optimizer": { - "optimizer_type": "miprov2", - "auto": "light", - "max_labeled_demos": 2, - "max_bootstrapped_demos": 4, - "num_trials": 2, - "minibatch": true - }, - } - - :param trainer_dict: Dictionary containing trainer parameters. - :type trainer_dict: dict - :param prompt: The prompt to use for this trainer. - :type prompt: SinglePrompt - :return: A SinglePromptTrainer object. - :rtype: SinglePromptTrainer - """ - if trainset is None: - trainset = [] - if evalset is None: - evalset = [] - try: - return TrainerFactory.single_trainer( - trainer_class=trainer_dict["trainer"]["class"], - prompt=prompt, - optimizer_type=trainer_dict["optimizer"]["optimizer_type"], - optimizer_kwargs=trainer_dict["optimizer"], - mlflow_model_name=trainer_dict["trainer"]["mlflow_model_name"], - mlflow_experiment_name=trainer_dict["trainer"]["mlflow_experiment_name"], - mlflow_tracking_uri=trainer_dict["trainer"]["mlflow_tracking_uri"], - trainset=trainset, - evalset=evalset, - ) - except Exception as e: - log.error(f"Error creating single trainer: {e}") - raise e
    - - - -
    -[docs] -def single_trainer_from_yaml(yaml_path: Union[str, Path]) -> SinglePromptTrainer: - """Load a single prompt trainer from a YAML file. - - .. code-block:: yaml - trainer: - hf_api_key: !env HF_DATASET_KEY # Must be a valid Hugging Face API key - # (with permission to access graphdoc) - # TODO: we may make this public - load_from_hf: false # Load the dataset from Hugging Face - load_from_local: true # Load the dataset from a local directory - load_local_specific_category: false # Load all categories or a specific category - # (if load_from_local is true) - local_specific_category: perfect, # Which category to load from the dataset - # (if load_from_local is true) - local_parse_objects: true, # Whether to parse the objects - # in the dataset - # (if load_from_local is true) - split_for_eval: true, # Whether to split the dataset - # into trainset and evalset - trainset_size: 1000, # The size of the trainset - evalset_ratio: 0.1, # The proportionate size of evalset - - prompt: - prompt: base_doc_gen # Which prompt signature to use - class: DocGeneratorPrompt # Must be a child of SinglePrompt - # (we will use an enum to map this) - type: chain_of_thought # The type of prompt to use - # (predict, chain_of_thought) - metric: rating # The type of metric to use - # (rating, category) - load_from_mlflow: false # L oad the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: true # Whether another prompt is used - # to calculate the metric - # (in which case we must load prompt) - - prompt_metric: - prompt: doc_quality # The prompt to use to calculate the metric - class: DocQualityPrompt # The class of the prompt to use - # to calculate the metric - type: predict # The type of prompt to use - # to calculate the metric - metric: rating # The metric to use to calculate - # the metric - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - - :param yaml_path: Path to the YAML file. - :type yaml_path: Union[str, Path] - :return: A SinglePromptTrainer object. - :rtype: SinglePromptTrainer - - """ - try: - config = load_yaml_config(yaml_path) - prompt = single_prompt_from_yaml(yaml_path) - trainset, evalset = trainset_and_evalset_from_yaml(yaml_path) - return single_trainer_from_dict(config, prompt, trainset, evalset) - except Exception as e: - log.error(f"Error creating trainer from YAML: {e}") - raise e
    - - - -####################### -# Module Methods # -####################### -
    -[docs] -def doc_generator_module_from_dict( - module_dict: dict, prompt: Union[DocGeneratorPrompt, SinglePrompt] -) -> DocGeneratorModule: - """ - Load a doc generator module from a dictionary of parameters. - - .. code-block:: json - { - "retry": true, - "retry_limit": 1, - "rating_threshold": 3, - "fill_empty_descriptions": true - } - - :param module_dict: Dictionary containing module parameters. - :type module_dict: dict - :param prompt: The prompt to use for this module. - :type prompt: DocGeneratorPrompt - :return: A DocGeneratorModule object. - :rtype: DocGeneratorModule - """ - return DocGeneratorModule( - prompt=prompt, - retry=module_dict["retry"], - retry_limit=module_dict["retry_limit"], - rating_threshold=module_dict["rating_threshold"], - fill_empty_descriptions=module_dict["fill_empty_descriptions"], - )
    - - - -
    -[docs] -def doc_generator_module_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorModule: - """Load a doc generator module from a YAML file. - - .. code-block:: yaml - prompt: - prompt: base_doc_gen # Which prompt signature to use - class: DocGeneratorPrompt # Must be a child of SinglePrompt - # (we will use an enum to map this) - type: chain_of_thought # The type of prompt to use - # (predict, chain_of_thought) - metric: rating # The type of metric to use - # (rating, category) - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: true # Whether another prompt is used - # to calculate the metric - # (in which case we must load that prompt) - - prompt_metric: - prompt: doc_quality # The prompt to use to calculate the metric - class: DocQualityPrompt # The class of the prompt to use - # to calculate the metric - type: predict # The type of prompt to use - # to calculate the metric - metric: rating # The metric to use to calculate the metric - load_from_mlflow: false # Whether to load the prompt - # from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - - module: - retry: true # Whether to retry the generation - # if the quality check fails - retry_limit: 1 # The maximum number of retries - rating_threshold: 3 # The rating threshold for the quality check - fill_empty_descriptions: true # Whether to fill empty descriptions with - # generated documentation - - :param yaml_path: Path to the YAML file. - :type yaml_path: Union[str, Path] - :return: A DocGeneratorModule object. - :rtype: DocGeneratorModule - - """ - config = load_yaml_config(yaml_path)["module"] - prompt = single_prompt_from_yaml(yaml_path) - return doc_generator_module_from_dict(config, prompt)
    - - - -####################### -# Eval Methods # -####################### -
    -[docs] -def doc_generator_eval_from_yaml(yaml_path: Union[str, Path]) -> DocGeneratorEvaluator: - """Load a doc generator evaluator from a YAML file. - - .. code-block:: yaml - mlflow: - mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow - mlflow_tracking_username: !env MLFLOW_TRACKING_USERNAME # The username for the mlflow tracking server - mlflow_tracking_password: !env MLFLOW_TRACKING_PASSWORD # The password for the mlflow tracking server - - prompt: - prompt: base_doc_gen # Which prompt signature to use - class: DocGeneratorPrompt # Must be a child of SinglePrompt (we will use an enum to map this) - type: chain_of_thought # The type of prompt to use (predict, chain_of_thought) - metric: rating # The type of metric to use (rating, category) - load_from_mlflow: false # Whether to load the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null # The version of the model in MLflow - prompt_metric: true # Whether another prompt is used to calculate the metric (in which case we must also load that prompt) - - prompt_metric: - prompt: doc_quality # The prompt to use to calculate the metric - class: DocQualityPrompt # The class of the prompt to use to calculate the metric - type: predict # The type of prompt to use to calculate the metric - metric: rating # The metric to use to calculate the metric - load_from_mlflow: false # Whether to load the prompt from an MLFlow URI - model_uri: null # The tracking URI for MLflow - model_name: null # The name of the model in MLflow - model_version: null - - module: - retry: true # Whether to retry the generation if the quality check fails - retry_limit: 1 # The maximum number of retries - rating_threshold: 3 # The rating threshold for the quality check - fill_empty_descriptions: true # Whether to fill the empty descriptions in the schema - - eval: - mlflow_tracking_uri: !env MLFLOW_TRACKING_URI # The tracking URI for MLflow - mlflow_experiment_name: doc_generator_eval # The name of the experiment in MLflow - generator_prediction_field: documented_schema # The field in the generator prediction to use - evaluator_prediction_field: rating # The field in the evaluator prediction to use - readable_value: 25 - - :param yaml_path: Path to the YAML file. - :type yaml_path: Union[str, Path] - :return: A DocGeneratorEvaluator object. - :rtype: DocGeneratorEvaluator - - """ - # load the generator - generator = doc_generator_module_from_yaml(yaml_path) - config = load_yaml_config(yaml_path) - - # load the evaluator - metric_config = config["prompt_metric"] - evaluator = single_prompt_from_dict(metric_config, metric_config["metric"]) - - # load the eval config - mdh = mlflow_data_helper_from_yaml(yaml_path) # noqa: F841 - mlflow_tracking_uri = config["mlflow"]["mlflow_tracking_uri"] - mlflow_experiment_name = config["eval"]["mlflow_experiment_name"] - generator_prediction_field = config["eval"]["generator_prediction_field"] - evaluator_prediction_field = config["eval"]["evaluator_prediction_field"] - readable_value = config["eval"]["readable_value"] - - # load the evalset - evalset = trainset_from_yaml(yaml_path) - - # return the evaluator - return DocGeneratorEvaluator( - generator=generator, - evaluator=evaluator, - evalset=evalset, - mlflow_tracking_uri=mlflow_tracking_uri, - mlflow_experiment_name=mlflow_experiment_name, - generator_prediction_field=generator_prediction_field, - evaluator_prediction_field=evaluator_prediction_field, - readable_value=readable_value, - )
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/dspy_data_helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/dspy_data_helper.html deleted file mode 100644 index 834dd3a..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/dspy_data_helper.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - graphdoc.data.dspy_data.dspy_data_helper — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
      -
    • - - -
    • -
    • -
    -
    -
    -
    -
    - -

    Source code for graphdoc.data.dspy_data.dspy_data_helper

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from abc import ABC, abstractmethod
    -from functools import singledispatch
    -from typing import Any, Optional, Union
    -
    -# external packages
    -import dspy
    -from datasets import Dataset
    -from mlflow.models import ModelSignature
    -
    -# internal packages
    -
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class DspyDataHelper(ABC): - """Abstract class for creating data objects related to a given dspy.Signature.""" - - ####################### - # Class Methods # - ####################### -
    -[docs] - @singledispatch - @staticmethod - def prompt_signature( - prompt: Any, - ) -> Union[dspy.Signature, dspy.SignatureMeta]: - """Given a prompt, return a dspy.Signature object. - - :param prompt: A prompt. - :type prompt: Any - - """ - log.warning("No prompt signature found for the given prompt.") - raise ValueError("No prompt signature found for the given prompt.")
    - - - @prompt_signature.register(dspy.ChainOfThought) - @staticmethod - def _(prompt: dspy.ChainOfThought) -> Union[dspy.Signature, dspy.SignatureMeta]: - """Given a dspy.ChainOfThought object, return a dspy.Signature object.""" - return prompt.predict.signature - -
    -[docs] - @prompt_signature.register(dspy.Predict) - @staticmethod - def _(prompt: dspy.Predict) -> Union[dspy.Signature, dspy.SignatureMeta]: - """Given a dspy.Predict object, return a dspy.Signature object.""" - return prompt.signature
    - - -
    -[docs] - @staticmethod - def formatted_signature( - signature: Union[dspy.Signature, dspy.SignatureMeta], - example: dspy.Example, - ) -> str: - """Given a dspy.Signature and a dspy.Example, return a formatted signature as a - string. - - :param signature: A dspy.Signature object. - :type signature: dspy.Signature - :param example: A dspy.Example object. - :type example: dspy.Example - :return: A formatted signature as a string. - :rtype: str - - """ - adapter = dspy.ChatAdapter() - prompt = adapter.format( - signature=signature, # type: ignore - # TODO: we should only accept dspy.Signature objects, not dspy.SignatureMeta - demos=[example.toDict()], - inputs=example.toDict(), - ) - return ( - f"------\nSystem\n------\n {prompt[0]['content']} \n" - f"------\nUser\n------\n {prompt[1]['content']}" - )
    - - - ####################### - # Abstract Methods # - ####################### -
    -[docs] - @staticmethod - @abstractmethod - def example(inputs: dict[str, Any]) -> dspy.Example: - """Given a dictionary of inputs, return a dspy.Example object. - - :param inputs: A dictionary of inputs. - :type inputs: dict[str, Any] - :return: A dspy.Example object. - :rtype: dspy.Example - - """ - pass
    - - -
    -[docs] - @staticmethod - @abstractmethod - def example_example() -> dspy.Example: - """Return an example dspy.Example object with the inputs set to the example - values. - - :return: A dspy.Example object. - :rtype: dspy.Example - - """ - pass
    - - -
    -[docs] - @staticmethod - @abstractmethod - def model_signature() -> ModelSignature: - """Return a mlflow.models.ModelSignature object. Based on the example object, - removes the output fields and utilizes the remaining fields to infer the model - signature. - - :return: A mlflow.models.ModelSignature object. - :rtype: mlflow.models.ModelSignature - - """ - # TODO: decide if this should be here or in the mlflow_data_helper - pass
    - - -
    -[docs] - @staticmethod - @abstractmethod - def prediction(inputs: dict[str, Any]) -> dspy.Prediction: - """Given a dictionary of inputs, return a dspy.Prediction object. - - :param inputs: A dictionary of inputs. - :type inputs: dict[str, Any] - :return: A dspy.Prediction object. - :rtype: dspy.Prediction - - """ - pass
    - - -
    -[docs] - @staticmethod - @abstractmethod - def prediction_example() -> dspy.Prediction: - """Return an example dspy.Prediction object with the inputs set to the example - values. - - :return: A dspy.Prediction object. - :rtype: dspy.Prediction - - """ - pass
    - - -
    -[docs] - @staticmethod - @abstractmethod - def trainset( - inputs: Union[dict[str, Any], Dataset], - filter_args: Optional[dict[str, Any]] = None, - ) -> list[dspy.Example]: - """Given a dictionary of inputs or a datasets.Dataset object, return a list of - dspy.Example objects. - - :param inputs: A dictionary of inputs or a datasets.Dataset object. - :type inputs: Union[dict[str, Any], datasets.Dataset] - :param filter_args: A dictionary of filter arguments. These are instructions for - how we will filter and / or transform the inputs. - :type filter_args: Optional[dict[str, Any]] - :return: A list of dspy.Example objects. - :rtype: list[dspy.Example] - - """ - # TODO: we should consider tighter coupling between DspyDataHelper and SchemaObject - # (turning SchemaObject into a base class for all data objects) - # so that we can have guarantees on the formatting and contents of the inputs - pass
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/generation_data_helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/generation_data_helper.html deleted file mode 100644 index c789729..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/generation_data_helper.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - graphdoc.data.dspy_data.generation_data_helper — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
      -
    • - - -
    • -
    • -
    -
    -
    -
    -
    - -

    Source code for graphdoc.data.dspy_data.generation_data_helper

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from typing import Any, Optional, Union
    -
    -# external packages
    -import dspy
    -from datasets import Dataset
    -from mlflow.models import ModelSignature, infer_signature
    -
    -# internal packages
    -from graphdoc.data.dspy_data.dspy_data_helper import DspyDataHelper
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class GenerationDataHelper(DspyDataHelper): - """A helper class for creating data objects related to our Documentation Generation - dspy.Signature. - - The example signature is defined as: - ``` - database_schema: str = dspy.InputField() - documented_schema: str = dspy.OutputField() - ``` - - """ - -
    -[docs] - @staticmethod - def example(inputs: dict[str, Any]) -> dspy.Example: - return dspy.Example( - database_schema=inputs.get("database_schema", ""), - documented_schema=inputs.get("documented_schema", ""), - ).with_inputs("database_schema")
    - - -
    -[docs] - @staticmethod - def example_example() -> dspy.Example: - return GenerationDataHelper.example( - { - "database_schema": "test database schema", - "documented_schema": "test documented schema", - } - )
    - - -
    -[docs] - @staticmethod - def model_signature() -> ModelSignature: - # TODO: decide if this should be here or in the mlflow_data_helper - example = GenerationDataHelper.example_example().toDict() - example.pop("documented_schema") - return infer_signature(example)
    - - -
    -[docs] - @staticmethod - def prediction(inputs: dict[str, Any]) -> dspy.Prediction: - return dspy.Prediction( - database_schema=inputs.get("database_schema", ""), - documented_schema=inputs.get("documented_schema", ""), - )
    - - -
    -[docs] - @staticmethod - def prediction_example() -> dspy.Prediction: - return GenerationDataHelper.prediction( - { - "database_schema": "test database schema", - "documented_schema": "test documented schema", - } - )
    - - -
    -[docs] - @staticmethod - def trainset( - inputs: Union[dict[str, Any], Dataset], - filter_args: Optional[dict[str, Any]] = None, - ) -> list[dspy.Example]: - if isinstance(inputs, dict): - # TODO: implement this - raise NotImplementedError("from dictionary is not implemented") - if isinstance(inputs, Dataset): - # TODO: here is where we will want to enable post-processing of the inputs - examples = [] - for i in range(len(inputs)): - item = inputs[i] - database_schema = item.get("schema_str", None) - documented_schema = item.get("schema_str", None) - if database_schema is None or documented_schema is None: - raise ValueError( - f"dataset item {i} is missing one or more required fields" - ) - example_dict = { - "database_schema": database_schema, - "documented_schema": documented_schema, - } - examples.append(GenerationDataHelper.example(example_dict)) - return examples - raise ValueError( - f"inputs must be a dictionary or a datasets, not: {type(inputs)}" - )
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/quality_data_helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/quality_data_helper.html deleted file mode 100644 index 33ce4b4..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/dspy_data/quality_data_helper.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - graphdoc.data.dspy_data.quality_data_helper — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
      -
    • - - -
    • -
    • -
    -
    -
    -
    -
    - -

    Source code for graphdoc.data.dspy_data.quality_data_helper

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from typing import Any, Optional, Union
    -
    -# external packages
    -import dspy
    -from datasets import Dataset
    -from mlflow.models import ModelSignature, infer_signature
    -
    -# internal packages
    -from graphdoc.data.dspy_data.dspy_data_helper import DspyDataHelper
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class QualityDataHelper(DspyDataHelper): - """A helper class for creating data objects related to our Documentation Quality - dspy.Signature. - - The example signature is defined as: - ``` - database_schema: str = dspy.InputField() - category: Literal["perfect", "almost perfect", "poor but correct", "incorrect"] = ( - dspy.OutputField() - ) - rating: Literal[4, 3, 2, 1] = dspy.OutputField() - ``` - - """ - -
    -[docs] - @staticmethod - def example(inputs: dict[str, Any]) -> dspy.Example: - return dspy.Example( - database_schema=inputs.get("database_schema", ""), - category=inputs.get("category", ""), - rating=inputs.get("rating", 0), - ).with_inputs("database_schema")
    - - -
    -[docs] - @staticmethod - def example_example() -> dspy.Example: - return QualityDataHelper.example( - { - "database_schema": "test database schema", - "category": "perfect", - "rating": 4, - } - )
    - - -
    -[docs] - @staticmethod - def model_signature() -> ModelSignature: - # TODO: decide if this should be here or in the mlflow_data_helper - example = QualityDataHelper.example_example().toDict() - example.pop("category") - example.pop("rating") - return infer_signature(example)
    - - -
    -[docs] - @staticmethod - def prediction(inputs: dict[str, Any]) -> dspy.Prediction: - return dspy.Prediction( - database_schema=inputs.get("database_schema", ""), - category=inputs.get("category", ""), - rating=inputs.get("rating", 0), - )
    - - -
    -[docs] - @staticmethod - def prediction_example() -> dspy.Prediction: - return QualityDataHelper.prediction( - { - "database_schema": "test database schema", - "category": "perfect", - "rating": 4, - } - )
    - - -
    -[docs] - @staticmethod - def trainset( - inputs: Union[dict[str, Any], Dataset], - filter_args: Optional[dict[str, Any]] = None, - ) -> list[dspy.Example]: - if isinstance(inputs, dict): - # TODO: implement this - raise NotImplementedError("from dictionary is not implemented") - if isinstance(inputs, Dataset): - examples = [] - for i in range(len(inputs)): - item = inputs[i] - database_schema = item.get("schema_str", None) - category = item.get("category", None) - rating = int(item.get("rating", None)) - if database_schema is None or category is None or rating is None: - raise ValueError( - f"dataset item {i} is missing one or more required fields" - ) - example_dict = { - "database_schema": database_schema, - "category": category, - "rating": rating, - } - examples.append(QualityDataHelper.example(example_dict)) - return examples - raise ValueError( - f"inputs must be a dictionary or a datasets, not: {type(inputs)}" - )
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/helper.html deleted file mode 100644 index 1649c16..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/helper.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - graphdoc.data.helper — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.data.helper

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -import logging
    -
    -# system packages
    -import os
    -from pathlib import Path
    -from typing import Literal, Union
    -
    -import yaml
    -from yaml import SafeLoader
    -
    -# internal packages
    -
    -# external packages
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -def check_directory_path(directory_path: Union[str, Path]) -> None: - """Check if the provided path resolves to a valid directory. - - :param directory_path: The path to check. - :type directory_path: Union[str, Path] - :raises ValueError: If the path does not resolve to a valid directory. - :return: None - :rtype: None - - """ - _directory_path = Path(directory_path).resolve() - if not _directory_path.is_dir(): - raise ValueError( - f"The provided path does not resolve to a valid directory: {directory_path}" - )
    - - - -
    -[docs] -def check_file_path(file_path: Union[str, Path]) -> None: - """Check if the provided path resolves to a valid file. - - :param file_path: The path to check. :type file_path: Union[str, Path] :raises - ValueError: If the path does not resolve to a valid file. :return: None :rtype: None - - """ - _file_path = Path(file_path).resolve() - if not _file_path.is_file(): - raise ValueError( - f"The provided path does not resolve to a valid file: {file_path}" - )
    - - - -
    -[docs] -def _env_constructor(loader: SafeLoader, node: yaml.nodes.ScalarNode) -> str: - """Custom constructor for environment variables. - - :param loader: The YAML loader. - :type loader: yaml.SafeLoader - :param node: The node to construct. - :type node: yaml.nodes.ScalarNode - :return: The environment variable value. - :rtype: str - :raises ValueError: If the environment variable is not set. - - """ - value = loader.construct_scalar(node) - env_value = os.getenv(value) - if env_value is None: - raise ValueError(f"Environment variable '{value}' is not set.") - return env_value
    - - - -
    -[docs] -def load_yaml_config(file_path: Union[str, Path], use_env: bool = True) -> dict: - """Load a YAML configuration file. - - :param file_path: The path to the YAML file. - :type file_path: Union[str, Path] - :param use_env: Whether to use environment variables. - :type use_env: bool - :return: The YAML configuration. - :rtype: dict - :raises ValueError: If the path does not resolve to a valid file or the environment - variable is not set. - - """ - if use_env: - SafeLoader.add_constructor("!env", _env_constructor) - - _file_path = Path(file_path).resolve() - if not _file_path.is_file(): - raise ValueError( - f"The provided path does not resolve to a valid file: {file_path}" - ) - with open(_file_path, "r") as file: - return yaml.load(file, Loader=SafeLoader)
    - - - -
    -[docs] -def setup_logging( - log_level: Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], -): - """Setup logging for the application. - - :param log_level: The log level. - :type log_level: Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] - - """ - root_logger = logging.getLogger() - root_logger.handlers.clear() - root_logger.setLevel(getattr(logging, log_level)) - - handler = logging.StreamHandler() - handler.setFormatter( - logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") - ) - - root_logger.addHandler(handler)
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/local.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/local.html deleted file mode 100644 index 3ca4915..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/local.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - graphdoc.data.local — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.data.local

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from enum import Enum
    -from pathlib import Path
    -from typing import Callable, Dict, Optional, Type, Union
    -
    -# external packages
    -from datasets import Dataset, concatenate_datasets
    -
    -# internal packages
    -from graphdoc.data.helper import check_directory_path, check_file_path
    -from graphdoc.data.parser import Parser
    -from graphdoc.data.schema import (
    -    SchemaCategory,
    -    SchemaCategoryPath,
    -    SchemaCategoryRatingMapping,
    -    SchemaObject,
    -    SchemaRating,
    -)
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -# TODO: we can make this a base class to enable better separation of our enum values
    -# and set up a factory pattern so that everything can be defined at the config level
    -# check out how pytorch etc. handles loading in something like imagenet
    -
    -[docs] -class LocalDataHelper: - """A helper class for loading data from a directory. - - :param schema_directory_path: The path to the directory containing the schemas - :type schema_directory_path: Union[str, Path] Defaults to the path to the schemas in - the graphdoc package. - :param categories: The categories of the schemas. Defaults to SchemaCategory. - :type categories: Type[Enum] - :param ratings: The ratings of the schemas. Defaults to SchemaRating. - :type ratings: Type[Enum] - :param categories_ratings: A callable that maps categories to ratings. Defaults to - SchemaCategoryRatingMapping.get_rating. - - """ - - def __init__( - self, - schema_directory_path: Optional[Union[str, Path]] = None, - categories: Type[Enum] = SchemaCategory, - ratings: Type[Enum] = SchemaRating, - categories_ratings: Callable = SchemaCategoryRatingMapping.get_rating, - # TODO: potentially add a category_path object here (defaulting to SchemaCategoryPath) - ): - if schema_directory_path is None: - schema_directory_path = Path(__file__).parent / "assets" / "schemas" - self.package_directory_path = True - else: - self.package_directory_path = False - check_directory_path(schema_directory_path) - self.schema_directory_path = schema_directory_path - - self.categories = categories - self.ratings = ratings - self.categories_ratings = categories_ratings - -
    -[docs] - def schema_objects_from_folder( - self, category: str, rating: int, folder_path: Union[str, Path] - ) -> dict[str, SchemaObject]: - """Load schemas from a folder, keeping the difficulty tag. - - :param folder_path: The path to the folder containing the schemas :type - folder_path: Union[str, Path] :param category: The category of the schemas :type - category: str :param rating: The rating of the schemas :type rating: int - :return: A dictionary of schemas :rtype: dict[str, SchemaObject] - - """ - check_directory_path(folder_path) - schemas = {} - for schema_file in Path(folder_path).iterdir(): - check_file_path(schema_file) - try: - schema_object = Parser.schema_object_from_file( - schema_file, category=category, rating=rating - ) - schemas[schema_file] = schema_object - except Exception as e: - log.warning(f"Error parsing schema file {schema_file}: {e}") - continue - return schemas
    - - -
    -[docs] - def schema_objects_from_folder_of_folders( - self, - folder_paths: Optional[Type[Enum]] = SchemaCategoryPath, - ) -> Union[Dict[str, SchemaObject], None]: - """Load a folder of folders containing schemas, keeping the difficulty tag. - - :param folder_paths: Enum class defining folder paths, defaults to - SchemaCategoryPath. Must have a get_path method. - :type folder_paths: Optional[Type[Enum]] - :return: Dictionary of loaded schemas - :rtype: Union[Dict[str, SchemaObject], None] - - """ - schemas = {} - - # iterate through categories defined in self.categories - for category in self.categories: - try: - category_enum = self.categories(category) - rating = self.categories_ratings(category_enum) - - # get path using provided folder_paths enum - if not hasattr(folder_paths, "get_path"): - raise AttributeError( - f"folder_paths enum must have a get_path method. " - f"Received: {folder_paths}" - ) - # since we know that the enum has a get_path method - path = folder_paths.get_path( # type: ignore - category_enum, self.schema_directory_path - ) - if not path: - log.warning(f"No path found for category: {category}") - continue - - try: - folder_schemas = self.schema_objects_from_folder( - category=category.value, rating=rating.value, folder_path=path - ) - schemas.update(folder_schemas) - except Exception as e: - log.warning(f"Error loading schemas from {path}: {e}") - continue - - except ValueError as e: - log.warning(f"Invalid category {category}: {e}") - continue - - return schemas if schemas else None
    - - -
    -[docs] - def folder_to_dataset( - self, - category: str, - folder_path: Union[str, Path], - parse_objects: bool = True, - type_mapping: Optional[dict[type, str]] = None, - ) -> Dataset: - """Load a folder of schemas, keeping the difficulty tag. - - :param category: The category of the schemas :type category: str :param - folder_path: The path to the folder containing the schemas :type folder_path: - Union[str, Path] :param parse_objects: Whether to parse the objects from the - schemas :type parse_objects: bool :param type_mapping: A dictionary mapping - types to strings :type type_mapping: Optional[dict[type, str]] - - """ - objects = [] - rating = self.categories_ratings(self.categories(category)) - schema_objects = self.schema_objects_from_folder( - category=category, rating=rating, folder_path=folder_path - ) - - for schema_object in schema_objects.values(): - if parse_objects: - parsed_objects = Parser.parse_objects_from_full_schema_object( - schema=schema_object, type_mapping=type_mapping - ) - if parsed_objects: - for parsed_object in parsed_objects.values(): - objects.append(parsed_object) - objects.append(schema_object) - - return concatenate_datasets( - [schema_object.to_dataset() for schema_object in objects] - )
    - - -
    -[docs] - def folder_of_folders_to_dataset( - self, - folder_paths: Type[Enum] = SchemaCategoryPath, - parse_objects: bool = True, - type_mapping: Optional[dict[type, str]] = None, - ) -> Dataset: - """Load a folder of folders containing schemas, keeping the difficulty tag. - - :param folder_paths: Enum class defining folder paths, defaults to - SchemaCategoryPath. Must have a get_path method. :type folder_paths: Type[Enum] - :param parse_objects: Whether to parse the objects from the schemas :type - parse_objects: bool :param type_mapping: A dictionary mapping graphql-ast node - values to strings - - """ - schema_objects = self.schema_objects_from_folder_of_folders( - folder_paths=folder_paths - ) - if schema_objects is None: - raise ValueError("No schema objects found") - objects = [] - for schema_object in schema_objects.values(): - if parse_objects: - parsed_objects = Parser.parse_objects_from_full_schema_object( - schema=schema_object, type_mapping=type_mapping - ) - if parsed_objects: - for parsed_object in parsed_objects.values(): - objects.append(parsed_object) - objects.append(schema_object) - return concatenate_datasets( - [schema_object.to_dataset() for schema_object in objects] - )
    -
    - - - # def _get_graph_doc_columns # we should move this to a huggingface file - - # def _get_empty_graphdoc_data # we should move this to a huggingface file - - # def _check_graph_doc_data_dict # we should move this to a huggingface file - - # def _create_graph_doc_dataset # we should move this to a huggingface file - - # def _load_from_hf # we should move this to a huggingface file - - # def _check_graph_doc_dataset_format # we should move this to a huggingface file - - # def _add_to_graph_doc_dataset # we should move this to a huggingface file - - # def _drop_dataset_duplicates # we should move this to a huggingface file - - # def _upload_to_hf # we should move this to a huggingface file - - # def _upload_repo_card_to_hf # we should move this to a huggingface file - - # def _create_repo_card # we should move this to a huggingface file - - # def _create_and_upload_repo_card # we should move this to a huggingface file -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/mlflow_data/mlflow_data_helper.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/mlflow_data/mlflow_data_helper.html deleted file mode 100644 index 050dc83..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/mlflow_data/mlflow_data_helper.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - graphdoc.data.mlflow_data.mlflow_data_helper — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
      -
    • - - -
    • -
    • -
    -
    -
    -
    -
    - -

    Source code for graphdoc.data.mlflow_data.mlflow_data_helper

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -import ast
    -import logging
    -
    -# system packages
    -import os
    -from pathlib import Path
    -from typing import Any, Dict, Optional, Union
    -
    -# external packages
    -import dspy
    -import mlflow
    -from mlflow.models import ModelSignature
    -
    -# internal packages
    -
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class MlflowDataHelper: -
    -[docs] - def __init__( - self, - mlflow_tracking_uri: Union[str, Path], - mlflow_tracking_username: Optional[str] = None, - mlflow_tracking_password: Optional[str] = None, - ): - """A helper class for loading and saving models and metadata from mlflow. - - :param mlflow_tracking_uri: The uri of the mlflow tracking server. :type - mlflow_tracking_uri: Union[str, Path] :param mlflow_tracking_username: The - username for the mlflow tracking server. :type mlflow_tracking_username: str - :param mlflow_tracking_password: The password for the mlflow tracking server. - :type mlflow_tracking_password: str - - """ - self.mlflow_tracking_uri = mlflow_tracking_uri - mlflow.set_tracking_uri(str(mlflow_tracking_uri)) - self.mlflow_client = mlflow.MlflowClient( - tracking_uri=str(self.mlflow_tracking_uri) - ) - if mlflow_tracking_username: - self.mlflow_tracking_username = mlflow_tracking_username - os.environ["MLFLOW_TRACKING_USERNAME"] = mlflow_tracking_username - if mlflow_tracking_password: - self.mlflow_tracking_password = mlflow_tracking_password - os.environ["MLFLOW_TRACKING_PASSWORD"] = mlflow_tracking_password
    - - - ######################### - # Auth Methods # - ######################### -
    -[docs] - def update_auth_env_vars( - self, mlflow_tracking_username: str, mlflow_tracking_password: str - ): - """Update the authentication environment variables. - - :param mlflow_tracking_username: The username for the mlflow tracking server. - :type mlflow_tracking_username: str - :param mlflow_tracking_password: The password for the mlflow tracking server. - :type mlflow_tracking_password: str - - """ - os.environ["MLFLOW_TRACKING_USERNAME"] = mlflow_tracking_username - os.environ["MLFLOW_TRACKING_PASSWORD"] = mlflow_tracking_password
    - - -
    -[docs] - def set_auth_env_vars(self): - """Set the authentication environment variables.""" - os.environ["MLFLOW_TRACKING_USERNAME"] = self.mlflow_tracking_username - os.environ["MLFLOW_TRACKING_PASSWORD"] = self.mlflow_tracking_password
    - - - ######################### - # Model Loading Methods # - ######################### - # TODO: add return type and error handling -
    -[docs] - def latest_model_version(self, model_name: str): - """Load the latest version of a model from mlflow. - - :param model_name: The name of the model to load. - :type model_name: str - :return: The loaded model. - - """ - model_latest_version = self.mlflow_client.get_latest_versions(model_name) - return mlflow.dspy.load_model(model_latest_version[0].source)
    - - - # TODO: add return type and error handling -
    -[docs] - def model_by_name_and_version(self, model_name: str, model_version: str): - """Load a model from mlflow by name and version. - - :param model_name: The name of the model to load. :type model_name: str :param - model_version: The version of the model to load. :type model_version: str - :return: The loaded model. - - """ - model = self.mlflow_client.get_model_version(model_name, model_version) - return mlflow.dspy.load_model(model.source)
    - - - # TODO: add return type and error handling -
    -[docs] - def model_by_uri(self, model_uri: str): - """Load a model from mlflow by uri. - - :param model_uri: The uri of the model to load. - :type model_uri: str - :return: The loaded model. - - """ - return mlflow.dspy.load_model(model_uri)
    - - -
    -[docs] - def model_by_args(self, load_model_args: Dict[str, str]): - # TODO: refactor this to use a more elegant method - """Given a dictionary of arguments, load a model from mlflow. Ordering is - model_by_uri, model_by_name_and_version, latest_model_version. - - :param load_model_args: A dictionary of arguments. - :type load_model_args: Dict[str, str] - :return: The loaded model. - - """ - if load_model_args.get("model_uri"): - return self.model_by_uri(load_model_args["model_uri"]) - elif load_model_args.get("model_name") and load_model_args.get("model_version"): - return self.model_by_name_and_version( - load_model_args["model_name"], load_model_args["model_version"] - ) - elif load_model_args.get("model_name"): - return self.latest_model_version(load_model_args["model_name"]) - else: - raise ValueError("No valid model arguments provided.")
    - - - ######################### - # Model Saving Methods # - ######################### - -
    -[docs] - def save_model( - self, model: dspy.Signature, model_signature: ModelSignature, model_name: str - ): - """Save a model to mlflow. - - :param model: The model to save. :type model: dspy.Signature :param - model_signature: The signature of the model. :type model_signature: - ModelSignature :param model_name: The name of the model to save. :type - model_name: str - - """ - mlflow.dspy.log_model( - dspy_model=model, - artifact_path="model", - signature=model_signature, - task=None, - registered_model_name=model_name, - ) # TODO: add metadata related to trainset and evalset
    - - - ############################ - # Metadata Loading Methods # - ############################ - -
    -[docs] - def run_parameters(self, run_id: str) -> dict[str, Any]: - """Load the parameters of a run from mlflow. - - :param run_id: The id of the run to load the parameters from. - :type run_id: str - :return: The parameters of the run. - - """ - run = self.mlflow_client.get_run(run_id) - - # go through and convert the nested dictionaries to actual dictionaries - # (as they are currently strings) - for key, value in run.data.params.items(): - run.data.params[key] = ast.literal_eval(value) - return run.data.params
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/parser.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/parser.html deleted file mode 100644 index 990ee8b..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/parser.html +++ /dev/null @@ -1,487 +0,0 @@ - - - - - - graphdoc.data.parser — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.data.parser

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import copy
    -import logging
    -from pathlib import Path
    -from typing import Optional, Union
    -
    -# external packages
    -from graphql import (
    -    DocumentNode,
    -    EnumTypeDefinitionNode,
    -    EnumValueDefinitionNode,
    -    FieldDefinitionNode,
    -    Node,
    -    ObjectTypeDefinitionNode,
    -    StringValueNode,
    -    parse,
    -    print_ast,
    -)
    -
    -from graphdoc.data.helper import check_directory_path, check_file_path
    -
    -# internal packages
    -from graphdoc.data.schema import SchemaObject
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class Parser: - """A class for parsing and handling of GraphQL objects.""" - - DEFAULT_NODE_TYPES = { - DocumentNode: "full schema", - ObjectTypeDefinitionNode: "table schema", - EnumTypeDefinitionNode: "enum schema", - EnumValueDefinitionNode: "enum value", - } - - def __init__(self, type_mapping: Optional[dict[type, str]] = None) -> None: - self.type_mapping = type_mapping or Parser.DEFAULT_NODE_TYPES - -
    -[docs] - @staticmethod - def _check_node_type( - node: Node, type_mapping: Optional[dict[type, str]] = None - ) -> str: - """Check the type of a schema node. - - :param node: The schema node to check :type node: Node :param type_mapping: - Custom mapping of node types to strings. Defaults to DEFAULT_NODE_TYPES :type - type_mapping: Optional[dict[type, str]] :return: The type of the schema node - :rtype: str - - """ - # use provided mapping or fall back to defaults - mapping = type_mapping or Parser.DEFAULT_NODE_TYPES - return mapping.get(type(node), "unknown schema")
    - - -
    -[docs] - @staticmethod - def parse_schema_from_file( - schema_file: Union[str, Path], - schema_directory_path: Optional[Union[str, Path]] = None, - ) -> DocumentNode: - """Parse a schema from a file. - - :param schema_file: The name of the schema file :type schema_ - file: - str - :param schema_directory_path: A path to a directory containing schemas - :type schema_directory_path: str - :return: The parsed schema - :rtype: DocumentNode - :raises Exception: If the schema cannot be parsed - - """ - if schema_directory_path: - check_directory_path(schema_directory_path) - schema_path = Path(schema_directory_path) / schema_file - else: - check_file_path(schema_file) - schema_path = Path(schema_file) - - try: - schema = schema_path.read_text() - return parse(schema) - except Exception as e: - log.error(f"Error parsing schema from file: {e}") - raise e
    - - -
    -[docs] - @staticmethod - def update_node_descriptions(node: Node, new_value: Optional[str] = None) -> Node: - """Given a GraphQL node, recursively traverse the node and its children, - updating all descriptions with the new value. Can also be used to remove - descriptions by passing None as the new value. - - :param node: The GraphQL node to update - :type node: Node - :param new_value: The new description value. If None, the description will be - removed. - :type new_value: Optional[str] - :return: The updated node - :rtype: Node - - """ - if hasattr(node, "description"): - description = getattr(node, "description", None) - if isinstance(description, StringValueNode): - if new_value: - description.value = new_value - else: - node.description = None - - for attr in dir(node): - if attr.startswith("__") or attr == "description": - continue - child = getattr(node, attr, None) - if isinstance(child, (list, tuple)): - for item in child: - if isinstance(item, Node): - Parser.update_node_descriptions(item, new_value) - elif isinstance(child, Node): - Parser.update_node_descriptions(child, new_value) - return node
    - - -
    -[docs] - @staticmethod - def count_description_pattern_matching(node: Node, pattern: str) -> dict[str, int]: - """Counts the number of times a pattern matches a description in a node and its - children. - - :param node: The GraphQL node to count the pattern matches in - :type node: Node - :param pattern: The pattern to count the matches of - :type pattern: str - :return: A dictionary with the counts of matches - :rtype: dict[str, int] - - """ - counts = { - "total": 0, - "pattern": 0, - "empty": 0, - } - - def update_counts(node: Node, counts: dict): - if hasattr(node, "description"): - description = getattr(node, "description", None) - counts["total"] += 1 - if description is None: - counts["empty"] += 1 - elif pattern in description.value: - counts["pattern"] += 1 - return counts - - def traverse(node: Node, counts: dict): - counts = update_counts(node, counts) - - for attr in dir(node): - if attr.startswith("__") or attr == "description": - continue - child = getattr(node, attr, None) - if isinstance(child, (list, tuple)): - for item in child: - if isinstance(item, Node): - traverse(item, counts) - elif isinstance(child, Node): - traverse(child, counts) - return counts - - counts = traverse(node, counts) - return counts
    - - -
    -[docs] - @staticmethod - def fill_empty_descriptions( - node: Node, - new_column_value: str = "Description for column: {}", - new_table_value: str = "Description for table: {}", - use_value_name: bool = True, - value_name: Optional[str] = None, - ): - """Recursively traverse the node and its children, filling in empty descriptions - with the new column or table value. Do not update descriptions that already have - a value. Default values are provided for the new column and table descriptions. - - :param node: The GraphQL node to update :type node: Node :param - new_column_value: The new column description value :type new_column_value: str - :param new_table_value: The new table description value :type new_table_value: - str :param use_value_name: Whether to use the value name in the description - :type use_value_name: bool :param value_name: The name of the value :type - value_name: Optional[str] :return: The updated node :rtype: Node - - """ - if hasattr(node, "description"): # and node.description == None: - description = getattr(node, "description", None) - if description is None: - # if the node is a table, use the table value - if isinstance(node, ObjectTypeDefinitionNode): - new_value = new_table_value - elif isinstance(node, EnumTypeDefinitionNode): # this is an enum type - new_value = f"Description for enum type: {value_name}" - # TODO: we should add this back to the fill_empty_descriptions - # parameter list - # else the node is a column, use the column value - else: - new_value = new_column_value - # format with the value name if needed (table/column name) - if use_value_name: - update_value = new_value.format(value_name) - else: - update_value = new_value - - node.description = StringValueNode(value=update_value) - - for attr in dir(node): - if attr.startswith("__") or attr == "description": - continue - child = getattr(node, attr, None) - if isinstance(child, (list, tuple)): - for item in child: - if isinstance(item, Node): - if ( - isinstance(item, FieldDefinitionNode) - or isinstance(item, EnumValueDefinitionNode) - or isinstance(item, ObjectTypeDefinitionNode) - or isinstance( - item, EnumTypeDefinitionNode - ) # EnumTypeDefinitionNode: check - ): - if isinstance(child, ObjectTypeDefinitionNode): - log.debug( - f"found an instance of a ObjectTypeDefinitionNode: " - f"{item.name.value}" - ) - value_name = item.name.value - Parser.fill_empty_descriptions( - item, - new_column_value, - new_table_value, - use_value_name, - value_name, - ) - elif isinstance(child, Node): - if ( - isinstance(child, FieldDefinitionNode) - or isinstance(child, EnumValueDefinitionNode) - or isinstance(child, ObjectTypeDefinitionNode) - or isinstance(child, EnumTypeDefinitionNode) - ): - if isinstance(child, ObjectTypeDefinitionNode): - log.debug( - f"found an instance of a ObjectTypeDefinitionNode: " - f"{child.name.value}" - ) - value_name = child.name.value - Parser.fill_empty_descriptions( - child, - new_column_value, - new_table_value, - use_value_name, - value_name, - ) - return node
    - - -
    -[docs] - @staticmethod - def schema_equality_check(gold_node: Node, check_node: Node) -> bool: - """A method to check if two schema nodes are equal. Only checks that the schemas - structures are equal, not the descriptions. - - :param gold_node: The gold standard schema node :type gold_node: Node :param - check_node: The schema node to check :type check_node: Node :return: Whether the - schemas are equal :rtype: bool - - """ - gold_node_copy = copy.deepcopy(gold_node) - check_node_copy = copy.deepcopy(check_node) - gold_node = Parser.update_node_descriptions(gold_node_copy) - check_node = Parser.update_node_descriptions(check_node_copy) - - if print_ast(gold_node) != print_ast(check_node): - return False - else: - return True
    - - -
    -[docs] - @staticmethod - def schema_object_from_file( - schema_file: Union[str, Path], - category: Optional[str] = None, - rating: Optional[int] = None, - ) -> SchemaObject: - """Parse a schema object from a file.""" - try: - schema_ast = Parser.parse_schema_from_file(schema_file) - schema_str = print_ast(schema_ast) - schema_type = Parser._check_node_type(schema_ast) - return SchemaObject.from_dict( - { - "key": str(schema_file), - "category": category, - "rating": rating, - "schema_name": str(Path(schema_file).stem), - "schema_type": schema_type, - "schema_str": schema_str, - "schema_ast": schema_ast, - } - ) - except Exception as e: - log.error(f"Error parsing schema file {schema_file}: {e}") - raise ValueError(f"Failed to parse schema from file {schema_file}: {e}")
    - - -
    -[docs] - @staticmethod - def parse_objects_from_full_schema_object( - schema: SchemaObject, type_mapping: Optional[dict[type, str]] = None - ) -> Union[dict[str, SchemaObject], None]: - """Parse out all available tables from a full schema object. - - :param schema: The full schema object to parse :type schema: SchemaObject :param - type_mapping: Custom mapping of node types to strings. Defaults to - DEFAULT_NODE_TYPES :type type_mapping: Optional[dict[type, str]] :return: The - parsed objects (tables and enums) :rtype: Union[dict, None] - - """ - if schema.schema_ast is None: - log.info(f"Schema object has no schema_ast: {schema.schema_name}") - return None - elif not isinstance(schema.schema_ast, DocumentNode): - log.info( - f"Schema object cannot be further decomposed: {schema.schema_name}" - ) - return None - - tables = {} - for definition in schema.schema_ast.definitions: - if isinstance(definition, ObjectTypeDefinitionNode): - log.debug("found table schema") - key = f"{schema.key}_{definition.name.value}" - schema_type = Parser._check_node_type(definition, type_mapping) - elif isinstance(definition, EnumTypeDefinitionNode): - log.debug("found enum schema") - key = f"{schema.key}_{definition.name.value}" - schema_type = Parser._check_node_type(definition, type_mapping) - else: - log.debug(f"skipping schema of type: {type(definition)}") - continue - object_schema = SchemaObject.from_dict( - { - "key": key, - "category": schema.category, - "rating": schema.rating, - "schema_name": definition.name.value, - "schema_type": schema_type, - "schema_str": print_ast(definition), - "schema_ast": definition, - } - ) - tables[object_schema.key] = object_schema - return tables
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/data/schema.html b/graphdoc/docs/_build/html/_modules/graphdoc/data/schema.html deleted file mode 100644 index 691e8f0..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/data/schema.html +++ /dev/null @@ -1,423 +0,0 @@ - - - - - - graphdoc.data.schema — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.data.schema

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from dataclasses import dataclass
    -from enum import Enum
    -from pathlib import Path
    -from typing import List, Optional, Type, Union
    -
    -from datasets import Dataset, Features, Value, concatenate_datasets
    -
    -# external packages
    -from graphql import Node
    -
    -# internal packages
    -
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class SchemaCategory(str, Enum): - PERFECT = "perfect" - ALMOST_PERFECT = "almost perfect" - POOR_BUT_CORRECT = "poor but correct" - INCORRECT = "incorrect" - BLANK = "blank" - -
    -[docs] - @classmethod - def from_str(cls, value: str) -> Optional["SchemaCategory"]: - try: - return cls(value) - except ValueError: - return None
    -
    - - - -
    -[docs] -class SchemaRating(str, Enum): - FOUR = "4" - THREE = "3" - TWO = "2" - ONE = "1" - ZERO = "0" - -
    -[docs] - @classmethod - def from_value(cls, value: Union[str, int]) -> Optional["SchemaRating"]: - if isinstance(value, int): - value = str(value) - try: - return cls(value) - except ValueError: - return None
    -
    - - - -
    -[docs] -class SchemaCategoryRatingMapping: - """Maps SchemaCategory to SchemaRating.""" - -
    -[docs] - @staticmethod - def get_rating(category: SchemaCategory) -> SchemaRating: - """Get the corresponding rating for a given schema category. - - :param category: The schema category - :return: The corresponding rating - - """ - mapping = { - SchemaCategory.PERFECT: SchemaRating.FOUR, - SchemaCategory.ALMOST_PERFECT: SchemaRating.THREE, - SchemaCategory.POOR_BUT_CORRECT: SchemaRating.TWO, - SchemaCategory.INCORRECT: SchemaRating.ONE, - SchemaCategory.BLANK: SchemaRating.ZERO, - } - return mapping.get(category, SchemaRating.ZERO)
    - - -
    -[docs] - @staticmethod - def get_category(rating: SchemaRating) -> SchemaCategory: - """Get the corresponding category for a given schema rating. - - :param rating: The schema rating - :return: The corresponding category - - """ - mapping = { - SchemaRating.FOUR: SchemaCategory.PERFECT, - SchemaRating.THREE: SchemaCategory.ALMOST_PERFECT, - SchemaRating.TWO: SchemaCategory.POOR_BUT_CORRECT, - SchemaRating.ONE: SchemaCategory.INCORRECT, - SchemaRating.ZERO: SchemaCategory.BLANK, - } - return mapping.get(rating, SchemaCategory.BLANK)
    -
    - - - -
    -[docs] -class SchemaType(str, Enum): - FULL_SCHEMA = "full schema" - TABLE_SCHEMA = "table schema" - ENUM_SCHEMA = "enum schema" - -
    -[docs] - @classmethod - def from_str(cls, value: str) -> Optional["SchemaType"]: - try: - return cls(value) - except ValueError: - return None
    -
    - - - -
    -[docs] -class SchemaCategoryPath(str, Enum): - """Maps schema categories to their folder names.""" - - PERFECT = "perfect" - ALMOST_PERFECT = "almost_perfect" - POOR_BUT_CORRECT = "poor_but_correct" - INCORRECT = "incorrect" - BLANK = "blank" - -
    -[docs] - @classmethod - def get_path( - cls, category: SchemaCategory, folder_path: Union[str, Path] - ) -> Optional[Path]: - """Get the folder path for a given schema category and folder path. - - :param category: The schema category - :return: The corresponding folder path - - """ - mapping = { - SchemaCategory.PERFECT: Path(folder_path) / cls.PERFECT, - SchemaCategory.ALMOST_PERFECT: Path(folder_path) / cls.ALMOST_PERFECT, - SchemaCategory.POOR_BUT_CORRECT: Path(folder_path) / cls.POOR_BUT_CORRECT, - SchemaCategory.INCORRECT: Path(folder_path) / cls.INCORRECT, - SchemaCategory.BLANK: Path(folder_path) / cls.BLANK, - } - return mapping.get(category)
    -
    - - - -
    -[docs] -@dataclass -class SchemaObject: - key: str - category: Optional[Enum] = None - rating: Optional[Enum] = None - schema_name: Optional[str] = None - schema_type: Optional[Enum] = None - schema_str: Optional[str] = None - schema_ast: Optional[Node] = None - -
    -[docs] - @classmethod - def from_dict( - cls, - data: dict, - category_enum: Type[Enum] = SchemaCategory, - rating_enum: Type[Enum] = SchemaRating, - type_enum: Type[Enum] = SchemaType, - ) -> "SchemaObject": - """Create SchemaObject from dictionary with validation. - - :param data: The data dictionary - :param category_enum: Custom Enum class for categories - :param rating_enum: Custom Enum class for ratings - :param type_enum: Custom Enum class for schema types - - """ - if "key" not in data: - raise ValueError("Missing required field: key") - - category = None - if data.get("category"): - try: - category = category_enum(data["category"]) - except ValueError: - raise ValueError( - f"Invalid category. Must be one of: {[e.value for e in category_enum]}" - ) - - rating = None - if data.get("rating"): - try: - if hasattr(rating_enum, "from_value"): - # we ignore the type because we know that the from_value method exists - rating = rating_enum.from_value(data["rating"]) # type: ignore - else: - rating = rating_enum(data["rating"]) - except ValueError: - raise ValueError( - f"Invalid rating. Must be one of: {[e.value for e in rating_enum]}" - ) - - schema_type = None - if data.get("schema_type"): - try: - schema_type = type_enum(data["schema_type"]) - except ValueError: - raise ValueError( - f"Invalid schema type. Must be one of: {[e.value for e in type_enum]}" - ) - - return cls( - key=data["key"], - category=category, - rating=rating, - schema_name=data.get("schema_name"), - schema_type=schema_type, - schema_str=data.get("schema_str"), - schema_ast=data.get("schema_ast"), - )
    - - -
    -[docs] - def to_dict(self) -> dict: - """Convert the SchemaObject to a dictionary, excluding the key field. - - :return: Dictionary representation of the SchemaObject without the key - :rtype: dict - - """ - return { - "category": self.category.value if self.category else None, - "rating": self.rating.value if self.rating else None, - "schema_name": self.schema_name, - "schema_type": self.schema_type.value if self.schema_type else None, - "schema_str": self.schema_str, - "schema_ast": self.schema_ast, - }
    - - -
    -[docs] - @staticmethod - def _hf_schema_object_columns() -> Features: - """Return the columns for the graph_doc dataset, based on the SchemaObject - fields. - - :return: The columns for the graph_doc dataset - :rtype: Features - - """ - return Features( - { - "category": Value("string"), - "rating": Value("string"), - "schema_name": Value("string"), - "schema_type": Value("string"), - "schema_str": Value("string"), - } - )
    - - -
    -[docs] - def to_dataset(self) -> Dataset: - """Convert the SchemaObject to a Hugging Face Dataset. - - :return: The Hugging Face Dataset - :rtype: Dataset - - """ - dictionary = { - "category": [self.category.value if self.category else None], - "rating": [self.rating.value if self.rating else None], - "schema_name": [self.schema_name], - "schema_type": [self.schema_type.value if self.schema_type else None], - "schema_str": [self.schema_str], - } - return Dataset.from_dict( - dictionary, features=SchemaObject._hf_schema_object_columns() - )
    -
    - - - -# TODO: we may end up wanting to both abstract and/or move this elsewhere -
    -[docs] -def schema_objects_to_dataset(schema_objects: List[SchemaObject]) -> Dataset: - """Convert a list of SchemaObjects to a Hugging Face Dataset. - - :param schema_objects: The list of SchemaObjects - :return: The Hugging Face Dataset - - """ - return concatenate_datasets( - [schema_object.to_dataset() for schema_object in schema_objects] - )
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/eval/doc_generator_eval.html b/graphdoc/docs/_build/html/_modules/graphdoc/eval/doc_generator_eval.html deleted file mode 100644 index 4a487c2..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/eval/doc_generator_eval.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - graphdoc.eval.doc_generator_eval — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
      -
    • - - -
    • -
    • -
    -
    -
    -
    -
    - -

    Source code for graphdoc.eval.doc_generator_eval

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from pathlib import Path
    -from typing import Any, List, Union
    -
    -# external packages
    -import dspy
    -import mlflow
    -from graphql import parse, print_ast
    -
    -# internal packages
    -from graphdoc.data import MlflowDataHelper
    -from graphdoc.modules import DocGeneratorModule
    -from graphdoc.prompts import DocQualityPrompt, SinglePrompt
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class DocGeneratorEvaluator(dspy.Module): -
    -[docs] - def __init__( - self, - generator: Union[ - DocGeneratorModule, dspy.Module, Any - ], # we have type hints, but accept any type for flexibility - evaluator: Union[ - DocQualityPrompt, SinglePrompt, Any - ], # we have type hints, but accept any type for flexibility - evalset: Union[List[dspy.Example], Any], - mlflow_tracking_uri: Union[str, Path], - mlflow_experiment_name: str = "doc_generator_eval", - generator_prediction_field: str = "documented_schema", - evaluator_prediction_field: str = "rating", - readable_value: int = 25, - ): - """A simple module for evaluating the quality of generated documentation. We - will make this extensible to include more complex evaluation metrics in the - future. - - Important: we assume that the rating values returned by the evaluator are - [1, 2, 3, 4]. We will make this more flexible in the future. - - """ - self.generator = generator - self.evaluator = evaluator - self.evalset = evalset - self.mlflow_tracking_uri = mlflow_tracking_uri - self.generator_prediction_field = generator_prediction_field - self.evaluator_prediction_field = evaluator_prediction_field - self.mlflow_helper = MlflowDataHelper(mlflow_tracking_uri) - self.mlflow_experiment_name = mlflow_experiment_name - self.readable_value = readable_value
    - - -
    -[docs] - def forward(self, database_schema: str) -> dict[str, Any]: - """Takes a database schema, documents it, and then evaluates each component and - the aggregate.""" - # (we assume we are using DocGeneratorModule) - generator_result = self.generator.forward(database_schema) # type: ignore - # TODO: let's decide if this is how we want to handle this in the future. - # Alternatively, we could return the documented schema from forward, - # not as a prediction object. - documented_schema = getattr(generator_result, self.generator_prediction_field) - - try: - documented_ast = parse(documented_schema) - component_ratings = [] - for node in documented_ast.definitions: - p = self.evaluator.infer(database_schema=print_ast(node)) - # TODO: let's decide if this is how we want to handle this, - # or if we should standardize the return type of the evaluator. - rating = getattr(p, self.evaluator_prediction_field) - rating = rating * self.readable_value if rating != 1 else 0 - component_ratings.append(rating) - - overall_p = self.evaluator.infer(database_schema=documented_schema) - overall_rating = getattr(overall_p, self.evaluator_prediction_field) - overall_rating = ( - overall_rating * self.readable_value if overall_rating != 1 else 0 - ) - - return { - "overall_rating": overall_rating, - "average_component_rating": sum(component_ratings) - / len(component_ratings), - "component_ratings": component_ratings, - } - - except Exception as e: - log.warning(f"Generated schema was not valid GraphQL: {e}") - document_ast = parse(database_schema) - # TODO: we should have a dynamic way of knowing the rating values - # that are being used by the evaluator. - return { - "overall_rating": 0, - "average_component_rating": 0, - "component_ratings": [0] * len(document_ast.definitions), - }
    - - -
    -[docs] - def evaluate(self): - """Batches the evaluation set and logs the results to mlflow.""" - mlflow.set_experiment(self.mlflow_experiment_name) - with mlflow.start_run(): - # evalset = [x.database_schema for x in self.evalset] - evaluation_results = self.batch(self.evalset, num_threads=32) - avg_overall_rating = sum( - [x["overall_rating"] for x in evaluation_results] - ) / len(evaluation_results) - avg_component_rating = sum( - [x["average_component_rating"] for x in evaluation_results] - ) / len(evaluation_results) - - mlflow.log_metric("average_overall_rating", avg_overall_rating) - mlflow.log_metric("average_component_rating", avg_component_rating) - mlflow.log_dict( - { - "component_ratings": [ - x["component_ratings"] for x in evaluation_results - ] - }, - "component_ratings.json", - )
    -
    - - - # TODO: log the parameters so we can reproduce the results. - # TODO: utilize huggingface datasets and commit hashes to enable reproducibility. -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/modules/doc_generator_module.html b/graphdoc/docs/_build/html/_modules/graphdoc/modules/doc_generator_module.html deleted file mode 100644 index acb5ae3..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/modules/doc_generator_module.html +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - graphdoc.modules.doc_generator_module — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
      -
    • - - -
    • -
    • -
    -
    -
    -
    -
    - -

    Source code for graphdoc.modules.doc_generator_module

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from typing import Any, Literal, Optional, Union
    -
    -# external packages
    -import dspy
    -import mlflow
    -from graphql import parse, print_ast
    -
    -# internal packages
    -from graphdoc.data import Parser
    -from graphdoc.prompts import DocGeneratorPrompt, SinglePrompt
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class DocGeneratorModule(dspy.Module): -
    -[docs] - def __init__( - self, - prompt: Union[DocGeneratorPrompt, SinglePrompt], - retry: bool = True, - retry_limit: int = 1, - rating_threshold: int = 3, - fill_empty_descriptions: bool = True, - ) -> None: - """Initialize the DocGeneratorModule. A module for generating documentation for - a given GraphQL schema. Schemas are decomposed and individually used to generate - documentation, with a quality check after each generation. - - signature fields are: - - database_schema: str = dspy.InputField() - - documented_schema: str = dspy.OutputField() - - :param prompt: The prompt to use for generating documentation. - :type prompt: DocGeneratorPrompt - :param retry: Whether to retry the generation if the quality check fails. - :type retry: bool - :param retry_limit: The maximum number of retries. - :type retry_limit: int - :param rating_threshold: The minimum rating for a generated document to be - considered valid. - :type rating_threshold: int - - """ - super().__init__() - - self.prompt = prompt - self.retry = retry - self.retry_limit = retry_limit - self.rating_threshold = rating_threshold - # TODO: as we start to add more transformations to the schema, - # we should move to a dict like structure for passing in those parameters - self.fill_empty_descriptions = fill_empty_descriptions - self.par = Parser() - - # ensure that the doc generator prompt metric is set to rating - if self.prompt.prompt_metric.prompt_metric != "rating": - log.warning( - "DocGeneratorModule: prompt metric is not set to rating. Setting to rating." - ) - self.prompt.prompt_metric.prompt_metric = "rating"
    - - - ####################### - # MLFLOW TRACING # - ####################### - # TODO: we will break this out into a separate class later - # when we have need for it elsewhere - def _start_trace( - self, - client: mlflow.MlflowClient, - expirement_name: str, - trace_name: str, - inputs: dict, - attributes: dict, - ): - # set the experiment name so that everything is logged to the same experiment - mlflow.set_experiment(expirement_name) - - # start the trace - trace = client.start_trace( - name=trace_name, - inputs=inputs, - attributes=attributes, - # experiment_id=expirement_name, - ) - - return trace - - def _end_trace( - self, - client: mlflow.MlflowClient, - trace: Any, # TODO: trace: mlflow.Span, - # E AttributeError: module 'mlflow' has no attribute 'Span' - outputs: dict, - status: Literal["OK", "ERROR"], - ): - client.end_trace(request_id=trace.request_id, outputs=outputs, status=status) - - ####################### - # MODULE FUNCTIONS # - ####################### -
    -[docs] - def _retry_by_rating(self, database_schema: str) -> str: - """Retry the generation if the quality check fails. Rating threshold is - determined at initialization. - - :param database_schema: The database schema to generate documentation for. :type - database_schema: str :return: The generated documentation. :rtype: str - - """ - - def _try_rating(database_schema: str) -> dspy.Prediction: - try: - return self.prompt.prompt_metric.infer(database_schema=database_schema) - except Exception as e: - log.warning( - f"DocGeneratorModule: error while attempting to compute rating: {e}" - ) - return dspy.Prediction(rating=self.rating_threshold) - # TODO: we could have better handling here, but the exponential decay - # on retries is a good fallback that is already built into the retry logic - - retries = 0 - rating = 0 - pred_database_schema = None - while retries < self.retry_limit: - # first pass, generate the documentation - prediction = self._predict(database_schema=database_schema) - pred_database_schema = prediction.documented_schema - - # get the rating for the documentation - rating_prediction = _try_rating(database_schema=pred_database_schema) - rating = rating_prediction.rating - log.info( - "Current rating (attempt #" + str(retries + 1) + "): " + str(rating) - ) - - # if the rating is above the threshold, return the documentation - if rating >= self.rating_threshold: - if retries > 0: - log.info( - "Retry improved rating quality to meet threshold (attempt #" - + str(retries + 1) - + ")" - ) - return pred_database_schema - log.info( - "The rating prediction is (attempt #" - + str(retries + 1) - + "): " - + str(rating_prediction) - ) - - # if the rating is below the threshold, prepare for a retry - if self.prompt.prompt_metric.prompt_type == "chain_of_thought": - log.info("Adding reasoning returned from the rating prediction") - reason = rating_prediction.reasoning - reason_database_schema = ( - f"# The documentation was previously generated " - f"and received a low quality rating " - f"because of the following reasoning: {reason}. " - f"Remove this comment in the documentation you generate\n" - + database_schema - ) - else: - reason_database_schema = ( - f"# This documentation was considered {rating_prediction.category}, " - f"please attempt again to generate the documentation properly. " - f"Remove this comment in the documentation you generate\n" - + database_schema - ) - - # prepare for the next retry - database_schema = reason_database_schema - retries += 1 - - log.warning( - "Retry limit reached. Returning the last documented schema with rating: " - + str(rating) - ) - if pred_database_schema is None: - log.warning("No documented schema returned from retries") - return database_schema - return pred_database_schema
    - - -
    -[docs] - def _predict(self, database_schema: str) -> dspy.Prediction: - """Given a database schema, generate a documented schema. Performs the following - steps: - - - Check that the graphql is valid - - Fill the empty descriptions (if fill_empty_descriptions is True) - - Generate the documentation - - Check that the generated schema is valid - - Check that the generated schema matches the original schema - - :param database_schema: The database schema to generate documentation for. - :type database_schema: str - :return: The generated documentation. - :rtype: dspy.Prediction - - """ - # check that the graphql is valid - try: - database_ast = parse(database_schema) - except Exception as e: - log.warning("Invalid GraphQL schema provided at onset: " + str(e)) - return dspy.Prediction(documented_schema=database_schema) - - # fill the empty descriptions - if self.fill_empty_descriptions: - updated_ast = self.par.fill_empty_descriptions(database_ast) - database_schema = print_ast(updated_ast) - - # try to generate the schema - try: - prediction = self.prompt.infer(database_schema=database_schema) - except Exception as e: - log.warning("Error generating schema: " + str(e)) - return dspy.Prediction(documented_schema=database_schema) - - # check that the generated schema is valid - try: - prediction_ast = parse(prediction.documented_schema) - except Exception as e: - log.warning("Invalid GraphQL schema generated: " + str(e)) - return dspy.Prediction(documented_schema=database_schema) - - # check that the generated schema matches the original schema - if self.par.schema_equality_check(database_ast, prediction_ast): - return dspy.Prediction(documented_schema=prediction.documented_schema) - else: - log.warning("Generated schema does not match the original schema") - return dspy.Prediction(documented_schema=database_schema)
    - - -
    -[docs] - def forward(self, database_schema: str) -> dspy.Prediction: - """Given a database schema, generate a documented schema. If retry is True, the - generation will be retried if the quality check fails. - - :param database_schema: The database schema to generate documentation for. :type - database_schema: str :return: The generated documentation. :rtype: - dspy.Prediction - - """ - if self.retry: - database_schema = self._retry_by_rating(database_schema=database_schema) - return dspy.Prediction(documented_schema=database_schema) - else: - return self._predict(database_schema=database_schema)
    - - -
    -[docs] - def document_full_schema( - self, - database_schema: str, - trace: bool = False, - client: Optional[mlflow.MlflowClient] = None, - expirement_name: Optional[str] = None, - api_key: Optional[str] = None, - ) -> dspy.Prediction: - """Given a database schema, parse out the underlying components and document on - a per-component basis. - - :param database_schema: The database schema to generate documentation for. :type - database_schema: str :return: The generated documentation. :rtype: - dspy.Prediction - - """ - # if we are tracing, make sure make sure we have everything needed to log to mlflow - if trace: - if client is None: - raise ValueError("client must be provided if trace is True") - if expirement_name is None: - raise ValueError("expirement_name must be provided if trace is True") - if api_key is None: - raise ValueError("api_key must be provided if trace is True") - - # check that the graphql is valid - try: - document_ast = parse(database_schema) - except Exception as e: - raise ValueError("Invalid GraphQL schema provided: " + str(e)) - - # parse the schema into examples - examples = [] - for node in document_ast.definitions: - example = dspy.Example( - database_schema=print_ast(node), documented_schema="" - ).with_inputs("database_schema") - examples.append(example) - - if trace: - # start the trace - log.info("Starting trace") - root_trace = self._start_trace( - client=client, # type: ignore - # TODO: we should have better type handling, but we check at the top - expirement_name=expirement_name, # type: ignore - # TODO: we should have better type handling, but we check at the top - trace_name="document_full_schema", - inputs={"database_schema": database_schema}, - attributes={"api_key": api_key}, - ) - log.info("created trace: " + str(root_trace)) - - # batch generate the documentation - documented_examples = self.batch(examples, num_threads=32) - document_ast.definitions = tuple( - parse(ex.documented_schema) - for ex in documented_examples # type: ignore - # TODO: we should have better type handling, but we know this works - ) - - # check that the generated schema matches the original schema - if self.par.schema_equality_check(parse(database_schema), document_ast): - log.info("Schema equality check passed, returning documented schema") - return_schema = print_ast(document_ast) - status = "OK" - else: - log.warning("Generated schema does not match the original schema") - if self.fill_empty_descriptions: - updated_ast = self.par.fill_empty_descriptions(document_ast) - return_schema = print_ast(updated_ast) - else: - return_schema = database_schema - status = "ERROR" - - if trace: - log.info("Ending trace") - self._end_trace( - client=client, # type: ignore - # TODO: we should have better type handling, but we check at the top - trace=root_trace, # type: ignore - # TODO: we should have better type handling, but i believe we will get an - # error if root_trace has an issue during the start_trace call - outputs={"documented_schema": return_schema}, - status=status, - ) - log.info("ended trace: " + str(root_trace)) # type: ignore - # TODO: we should have better type handling, but we check at the top - return dspy.Prediction(documented_schema=return_schema)
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/prompts.html b/graphdoc/docs/_build/html/_modules/graphdoc/prompts.html deleted file mode 100644 index 4e2c7a5..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/prompts.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - graphdoc.prompts — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.prompts

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from typing import Union
    -
    -# external packages
    -import dspy
    -
    -from graphdoc.prompts.schema_doc_generation import (
    -    BadDocGeneratorSignature,
    -    DocGeneratorHelperSignature,
    -    DocGeneratorPrompt,
    -    DocGeneratorSignature,
    -)
    -from graphdoc.prompts.schema_doc_quality import (
    -    DocQualityDemonstrationSignature,
    -    DocQualityPrompt,
    -    DocQualitySignature,
    -)
    -
    -# internal packages
    -from graphdoc.prompts.single_prompt import SinglePrompt
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class PromptFactory: -
    -[docs] - @staticmethod - def single_prompt( - prompt: Union[str, dspy.Signature, dspy.SignatureMeta], - prompt_class: str, - prompt_type: str, - prompt_metric: Union[str, DocQualityPrompt, SinglePrompt], - ) -> SinglePrompt: - """Returns an instance of the specified prompt class. Allows for the user to - pass in their own dspy signature. - - :param prompt: The prompt to use. :type prompt: Union[str, dspy.Signature] - :param prompt_class: The class of the prompt to use. :type prompt_class: str - :param prompt_type: The type of the prompt to use. :type prompt_type: str :param - prompt_metric: The metric to use for the prompt. :type prompt_metric: Union[str, - DocQualityPrompt, SinglePrompt] :return: An instance of the specified prompt - class. :rtype: SinglePrompt - - """ - prompt_classes = { - "DocQualityPrompt": DocQualityPrompt, - "DocGeneratorPrompt": DocGeneratorPrompt, - } - if prompt_class not in prompt_classes: - raise ValueError(f"Unknown prompt class: {prompt_class}") - try: - # TODO: we should be able to have better type checking here - return prompt_classes[prompt_class]( - prompt=prompt, prompt_type=prompt_type, prompt_metric=prompt_metric - ) - except Exception as e: - raise ValueError(f"Failed to initialize prompt class ({prompt_class}): {e}")
    -
    - - - -__all__ = [ - "BadDocGeneratorSignature", - "DocGeneratorHelperSignature", - "DocGeneratorPrompt", - "DocGeneratorSignature", - "DocQualityDemonstrationSignature", - "DocQualityPrompt", - "DocQualitySignature", - "PromptFactory", - "SinglePrompt", -] -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_generation.html b/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_generation.html deleted file mode 100644 index 12c46f3..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_generation.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - graphdoc.prompts.schema_doc_generation — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.prompts.schema_doc_generation

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from typing import Any, Callable, Dict, List, Literal, Union
    -
    -# external packages
    -import dspy
    -from graphql import parse
    -
    -# internal packages
    -from graphdoc.data import Parser
    -from graphdoc.prompts.schema_doc_quality import DocQualityPrompt
    -from graphdoc.prompts.single_prompt import SinglePrompt
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -###################
    -# DSPy Signatures #
    -###################
    -
    -[docs] -class DocGeneratorSignature(dspy.Signature): - """ - ### TASK: Given a GraphQL Schema, generate a precise description for the columns of the tables in the database. - - ### Requirements: - - Focus solely on confirmed details from the provided schema. - - Keep the description concise and factual. - - Exclude any speculative or additional commentary. - - DO NOT return the phrase "in the { table } table" in your description. - - ### Formatting - - Ensure that the schema maintains proper documentation formatting, as is provided. - - """ # noqa: B950 - - database_schema: str = dspy.InputField() - documented_schema: str = dspy.OutputField( - desc="The database schema with proper documentation, ensuring that the underlying schema is not altered." # noqa: B950 - )
    - - - -
    -[docs] -class DocGeneratorHelperSignature(dspy.Signature): - """ - ### TASK: Analyze the provided GraphQL Schema and generate detailed yet concise descriptions for each field within the database tables and enums. - - ### Requirements: - - If the field is unclear, and the documentation result is ambiguous, request additional information: "WARNING: Please provide additional information to avoid confusion". - - Utilize only the verified information from the schema to ensure accuracy. - - Descriptions should be factual, straightforward, and avoid any speculative language. - - Refrain from using the phrase "in the { table } table" within your descriptions. - - Ensure that the documentation adheres to standard schema formatting without modifying the underlying schema structure. - - ### Formatting: - - Maintain consistency with the existing documentation style and structure. - - Focus on clarity and precision to aid developers and system architects in understanding the schema's components effectively. - - """ # noqa: B950 - - database_schema: str = dspy.InputField() - documented_schema: str = dspy.OutputField( - desc="The database schema with proper documentation, ensuring that the underlying schema is not altered." # noqa: B950 - )
    - - - -
    -[docs] -class BadDocGeneratorSignature(dspy.Signature): - """ - ### TASK: Given a GraphQL Schema, generate intentionally incorrect documentation for the columns of the tables in the database. - - ### Requirements: - - Every table, entity, enum, etc. must have at least one column with a description that is obviosly incorrect. - - The documentation must be incorrect and misleading. - - The documentation should be scattered, with only some columns having documentation. - - ### Formatting - - Ensure that the schema maintains proper documentation formatting, as is provided. - - """ # noqa: B950 - - database_schema: str = dspy.InputField() - documented_schema: str = dspy.OutputField( - desc="The database schema with intentionally incorrect documentation, ensuring that the underlying schema is not altered." # noqa: B950 - )
    - - - -
    -[docs] -def doc_gen_factory( - key: Union[str, dspy.Signature, dspy.SignatureMeta] -) -> Union[dspy.Signature, dspy.SignatureMeta]: - """Factory function to return the correct signature based on the key. Currently only - supports three signatures (zero_shot_doc_gen, doc_gen_helper, bad_doc_gen). - - :param key: The key to return the signature for. - :type key: Union[str, dspy.Signature] - :return: The signature for the given key. - :rtype: Union[dspy.Signature, dspy.SignatureMeta] - - """ - # allow the user to pass in their own dspy signature - if isinstance(key, dspy.Signature) or isinstance(key, dspy.SignatureMeta): - return key - factory = { - "base_doc_gen": DocGeneratorSignature, - "doc_gen_helper": DocGeneratorHelperSignature, - "bad_doc_gen": BadDocGeneratorSignature, - } - signature = factory.get(key, None) - if signature is None: - raise ValueError(f"Invalid signature (type: {type(key)}): {key}") - return signature
    - - - -####################### -# Single Prompt Class # -####################### -
    -[docs] -class DocGeneratorPrompt(SinglePrompt): - def __init__( - self, - prompt: Union[str, dspy.Signature, dspy.SignatureMeta], - prompt_type: Union[Literal["predict", "chain_of_thought"], Callable], - prompt_metric: DocQualityPrompt, - ) -> None: - prompt_signature = doc_gen_factory(prompt) - super().__init__( - prompt=prompt_signature, - prompt_type=prompt_type, - prompt_metric=prompt_metric, - ) - - ####################### - # Class Methods # - ####################### -
    -[docs] - def evaluate_documentation_quality( - self, schema: dspy.Example, pred: dspy.Prediction, trace=None, scalar=True - ) -> int: - """Evaluate the quality of the documentation. Utilizes the instantiated metric - type to evaluate the quality of the documentation. - - :param schema: The schema to evaluate the documentation for. - :type schema: dspy.Example - :param pred: The predicted documentation. - :type pred: dspy.Prediction - :param trace: The trace of the prediction. - :type trace: Any - :param scalar: Whether to return a squared score or the full evaluation object. - :type scalar: bool - :return: The squared score or the full evaluation object. - :rtype: int - - """ - try: - gold_schema = parse(schema.database_schema) - pred_schema = parse(pred.documented_schema) - except Exception as e: - log.warning( - f"evaluate_documentation_quality: An exception occurred while " - f"parsing the schema: {e}" - ) - return 1 - if not Parser.schema_equality_check(gold_schema, pred_schema): - log.warning("evaluate_documentation_quality: Schema equality check failed") - return 1 - - # we use the instantiated metric type to evaluate the quality of the documentation - # TODO: we could add a check to make sure an LM object is initialized - evaluation = self.prompt_metric.infer(database_schema=pred.documented_schema) - log.info(f"evaluate_documentation_quality: Evaluation: {evaluation.rating}") - - if scalar: - return evaluation.rating**2 - else: - return evaluation.rating
    - - - ####################### - # Abstract Methods # - ####################### -
    -[docs] - def evaluate_metric( - self, example: dspy.Example, prediction: dspy.Prediction, trace=None - ) -> Any: - # TODO: we should expose a way to adjust the scalar value if we want to - return self.evaluate_documentation_quality(example, prediction, trace)
    - - -
    -[docs] - def format_metric( - self, - examples: List[dspy.Example], - overall_score: float, - results: List, - scores: List, - ) -> Dict[str, Any]: - """Format the metric results into a dictionary. - - :param examples: The examples used to evaluate the metric. :type examples: - List[dspy.Example] :param overall_score: The overall score of the metric. :type - overall_score: float :param results: The results of the metric. :type results: - List :param scores: The scores of the metric. :type scores: List - - """ - # TODO: we can expand this to further parse out the results and scores - return { - "overall_score": overall_score, - "scores": scores, - "results": results, - }
    - - -
    -[docs] - def compare_metrics( - self, - base_metrics: Any, - optimized_metrics: Any, - comparison_value: str = "overall_score", - ) -> bool: - """Compare the base and optimized metrics. - - :param base_metrics: The base metrics. :type base_metrics: Any :param - optimized_metrics: The optimized metrics. - - """ - if comparison_value == "overall_score": - return optimized_metrics.get("overall_score", 0) > base_metrics.get( - "overall_score", 0 - ) - else: - raise ValueError(f"Invalid comparison value: {comparison_value}")
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_quality.html b/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_quality.html deleted file mode 100644 index d933975..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/schema_doc_quality.html +++ /dev/null @@ -1,419 +0,0 @@ - - - - - - graphdoc.prompts.schema_doc_quality — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.prompts.schema_doc_quality

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from collections import defaultdict
    -from typing import Any, Callable, Dict, List, Literal, Union
    -
    -# external packages
    -import dspy
    -
    -# internal packages
    -from graphdoc.prompts.single_prompt import SinglePrompt
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -###################
    -# DSPy Signatures #
    -###################
    -
    -[docs] -class DocQualitySignature(dspy.Signature): - """ - You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating. - - The categories are described as: - - perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. - - almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement. - - poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect. - - incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present. - Output a number rating that corresponds to the categories described above. - - """ # noqa: B950 - - database_schema: str = dspy.InputField() - category: Literal["perfect", "almost perfect", "poor but correct", "incorrect"] = ( - dspy.OutputField() - ) - rating: Literal[4, 3, 2, 1] = dspy.OutputField()
    - - - -
    -[docs] -class DocQualityDemonstrationSignature(dspy.Signature): - """ - You are evaluating the output of an LLM program, expect hallucinations. Given a GraphQL Schema, evaluate the quality of documentation for that schema and provide a category rating. - - The categories are described as: - - perfect (4): The documentation contains enough information so that the interpretation of the schema and its database content is completely free of ambiguity. - perfect (4) example: - type Domain @entity { - " The namehash (id) of the parent name. References the Domain entity that is the parent of the current domain. Type: Domain " - parent: Domain - } - - almost perfect (3): The documentation is almost perfect and free from ambiguity, but there is room for improvement. - almost perfect (3) example: - type Token @entity { - " Name of the token, mirrored from the smart contract " - name: String! - } - - poor but correct (2): The documentation is poor but correct and has room for improvement due to missing information. The documentation is not incorrect. - poor but correct (2) example: - type InterestRate @entity { - "Description for column: id" - id: ID! - } - - incorrect (1): The documentation is incorrect and contains inaccurate or misleading information. Any incorrect information automatically leads to an incorrect rating, even if some correct information is present. - incorrect (1) example: - type BridgeProtocol implements Protocol @entity { - " Social Security Number of the protocol's main developer " - id: Bytes! - } - Output a number rating that corresponds to the categories described above. - - """ # noqa: B950 - - database_schema: str = dspy.InputField() - category: Literal["perfect", "almost perfect", "poor but correct", "incorrect"] = ( - dspy.OutputField() - ) - rating: Literal[4, 3, 2, 1] = dspy.OutputField()
    - - - -
    -[docs] -def doc_quality_factory( - key: Union[str, dspy.Signature, dspy.SignatureMeta] -) -> Union[dspy.Signature, dspy.SignatureMeta]: - """Factory function to return the correct signature based on the key. Currently only - supports two signatures (doc_quality and doc_quality_demo). - - :param key: The key to return the signature for. - :type key: Union[str, dspy.Signature] - :return: The signature for the given key. - - """ - # allow the user to pass in their own dspy signature - if isinstance(key, dspy.Signature) or isinstance(key, dspy.SignatureMeta): - return key - factory = { - "doc_quality": DocQualitySignature, - "doc_quality_demo": DocQualityDemonstrationSignature, - } - signature = factory.get(key, None) - if signature is None: - raise ValueError(f"Invalid signature (type: {type(key)}): {key}") - return signature
    - - - -####################### -# Single Prompt Class # -####################### -
    -[docs] -class DocQualityPrompt(SinglePrompt): -
    -[docs] - def __init__( - self, - prompt: Union[ - Literal["doc_quality", "doc_quality_demo"], - dspy.Signature, - dspy.SignatureMeta, - ] = "doc_quality", - prompt_type: Union[ - Literal["predict", "chain_of_thought"], Callable - ] = "predict", - prompt_metric: Union[Literal["rating", "category"], Callable] = "rating", - ) -> None: - # TODO: we should think about if we want to add checks on any provided dspy.Signature - """Initialize the DocQualityPrompt. This is a single prompt that can be used to - evaluate the quality of the documentation for a given schema. This is a wrapper - around the SinglePrompt class that implements the abstract methods. - - :param prompt: The prompt to use. Can either be a string that maps to a defined - signature, as set in the doc_quality_factory, or a dspy.Signature. :type prompt: - Union[str, dspy.Signature] :param prompt_type: The type of prompt to use. :type - prompt_type: Union[Literal["predict", "chain_of_thought"], Callable] :param - prompt_metric: The metric to use. Can either be a string that maps to a defined - metric, as set in the doc_quality_factory, or a custom callable function. - Function must have the signature (example: dspy.Example, prediction: - dspy.Prediction) -> bool. :type prompt_metric: Union[Literal["rating", - "category"], Callable] - - """ - prompt_signature = doc_quality_factory(prompt) - super().__init__( - prompt=prompt_signature, - prompt_type=prompt_type, - prompt_metric=prompt_metric, - )
    - - - ####################### - # Internal Methods # - ####################### - def _evaluate_rating_metric( - self, example: dspy.Example, prediction: dspy.Prediction - ) -> bool: - return example.rating == prediction.rating - - def _evaluate_category_metric( - self, example: dspy.Example, prediction: dspy.Prediction - ) -> bool: - return example.category == prediction.category - - ####################### - # Abstract Methods # - ####################### -
    -[docs] - def evaluate_metric( - self, example: dspy.Example, prediction: dspy.Prediction, trace=None - ) -> bool: - """Evaluate the metric for the given example and prediction. - - :param example: The example to evaluate the metric on. :type example: - dspy.Example :param prediction: The prediction to evaluate the metric on. :type - prediction: dspy.Prediction :param trace: Used for DSPy. :type trace: Any - :return: The result of the evaluation. A boolean for if the metric is correct. - :rtype: bool - - """ - evaluation_mapping = { - "rating": self._evaluate_rating_metric, - "category": self._evaluate_category_metric, - } - if isinstance(self.prompt_metric, str): - evaluation_function = evaluation_mapping.get(self.prompt_metric) - if evaluation_function is None: - raise ValueError(f"Invalid metric type: {self.prompt_metric}") - else: - evaluation_function = self.prompt_metric - return evaluation_function(example, prediction)
    - - -
    -[docs] - def format_metric( - self, - examples: List[dspy.Example], - overall_score: float, - results: List, - scores: List, - ) -> Dict[str, Any]: - """ - Formats evaluation metrics into a structured report containing: - - Overall score across all categories - - Percentage correct per category - - Detailed results for each evaluation - - :param examples: The examples to evaluate the metric on. - :type examples: List[dspy.Example] - :param overall_score: The overall score across all categories. - :type overall_score: float - :param results: The results of the evaluation. - :type results: List - :param scores: The scores of the evaluation. - :type scores: List - :return: A dictionary containing the overall score, per category scores, and details. - { "overall_score": 0, "per_category_scores": {}, "details": [], "results": [] } - :rtype: Dict[str, Any] - """ - - def _initialize_formatted_results() -> Dict[str, Any]: - """Initialize the results structure with empty containers.""" - return { - "overall_score": overall_score, - "per_category_scores": {}, - "details": [], - "results": results, - } - - def _process_single_result(result: tuple, score: Any) -> Dict[str, Any]: - """Process individual result to extract metadata and update statistics.""" - example, prediction, is_correct = result - example_data = dict(example.items()) - - expected_category = example_data.get("category", "unknown") - expected_rating = example_data.get("rating", None) - predicted_category = getattr(prediction, "category", "unknown") - predicted_rating = getattr(prediction, "rating", None) - - category_stats[expected_category]["total"] += 1 - if is_correct: - category_stats[expected_category]["correct"] += 1 - - return { - "expected_category": expected_category, - "expected_rating": expected_rating, - "predicted_category": predicted_category, - "predicted_rating": predicted_rating, - "is_correct": is_correct, - } - - def _calculate_percent_correct(correct: int, total: int) -> float: - """Calculate percentage correct with safe division.""" - return (correct / total) * 100 if total > 0 else 0.0 - - def _calculate_per_category_scores() -> Dict[str, Dict]: - """Convert category statistics to percentage scores.""" - return { - category: { - "percent_correct": _calculate_percent_correct( - stats["correct"], stats["total"] - ), - "total": stats["total"], - "correct": stats["correct"], - } - for category, stats in category_stats.items() - } - - # processing flow - formatted_results = _initialize_formatted_results() - category_stats = defaultdict(lambda: {"correct": 0, "total": 0}) - - # process all results and collect details - formatted_results["details"] = [ - _process_single_result(result, score) - for result, score in zip(results, scores) - ] - - # calculate final scores per category - formatted_results["per_category_scores"] = _calculate_per_category_scores() - - return formatted_results
    - - -
    -[docs] - def compare_metrics( - self, - base_metrics: Any, - optimized_metrics: Any, - comparison_value: str = "overall_score", - ) -> bool: - """Compare the metrics of the base and optimized models. Returns true if the - optimized model is better than the base model. - - :param base_metrics: The metrics of the base model. :type base_metrics: Any - :param optimized_metrics: The metrics of the optimized model. :type - optimized_metrics: Any :param comparison_value: The value to compare. - - """ - if comparison_value == "overall_score": - return optimized_metrics["overall_score"] > base_metrics["overall_score"] - else: - raise ValueError(f"Invalid comparison value: {comparison_value}")
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/single_prompt.html b/graphdoc/docs/_build/html/_modules/graphdoc/prompts/single_prompt.html deleted file mode 100644 index 9c1bdf5..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/prompts/single_prompt.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - - graphdoc.prompts.single_prompt — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.prompts.single_prompt

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# useful tutorial on dspy signatures: https://dspy.ai/tutorials/multihop_search/
    -
    -# system packages
    -import logging
    -from abc import ABC, abstractmethod
    -from typing import Any, Callable, Dict, List, Literal, Union
    -
    -# external packages
    -import dspy
    -
    -# internal packages
    -
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class SinglePrompt(ABC): -
    -[docs] - def __init__( - self, - prompt: Union[dspy.Signature, dspy.SignatureMeta], - prompt_type: Union[Literal["predict", "chain_of_thought"], Callable], - prompt_metric: Any, - # TODO: we should consider adding a DspyDataHelper object here for convenience - # and tighter coupling - ) -> None: - """Initialize a single prompt. - - :param prompt: The prompt to use. - :type prompt: dspy.Signature - :param prompt_type: The type of prompt to use. Can be "predict" or - "chain_of_thought". Optionally, pass another dspy.Module. - :type prompt_type: Union[Literal["predict", "chain_of_thought"], Callable] - :param prompt_metric: The metric to use. Marked as Any for flexibility (as - metrics can be other prompts). - :type prompt_metric: Any - - """ - self.prompt = prompt - self.prompt_type = prompt_type - self.prompt_metric = prompt_metric - - module_mapping = { - "predict": dspy.Predict, - "chain_of_thought": dspy.ChainOfThought, - } - # functools.singledispatch - less oop approach - # oop: make two classes for passing the callable - if self.prompt_type in module_mapping: - self.infer = module_mapping[self.prompt_type]( - self.prompt - ) # .get and then we can remove the error - elif isinstance(self.prompt_type, Callable): - log.warning( - "Using alternative dspy.Module for inference, please know what you are doing" - ) - self.infer = self.prompt_type(self.prompt) - else: - raise ValueError(f"Invalid prompt type: {self.prompt_type}")
    - - - ####################################### - # methods for evaluating the prompt # - ####################################### -
    -[docs] - @abstractmethod - def evaluate_metric( - self, example: dspy.Example, prediction: dspy.Prediction, trace=None - ) -> Any: - """This is the metric used to evalaute the prompt. - - :param example: The example to evaluate the metric on. :type example: - dspy.Example :param prediction: The prediction to evaluate the metric on. :type - prediction: dspy.Prediction :param trace: The trace to evaluate the metric on. - This is for DSPy. :type trace: Any - - """ - pass
    - - -
    -[docs] - @abstractmethod - def format_metric( - self, - examples: List[dspy.Example], - overall_score: float, - results: List, - scores: List, - ) -> Dict[str, Any]: - """This takes the results from the evaluate_evalset and does any necessary - formatting, taking into account the metric type. - - :param examples: The examples to evaluate the metric on. :type examples: - List[dspy.Example] :param overall_score: The overall score of the metric. :type - overall_score: float :param results: The results from the evaluate_evalset. - :type results: List :param scores: The scores from the evaluate_evalset. :type - scores: List - - """ - pass
    - - -
    -[docs] - @abstractmethod - def compare_metrics( - self, - base_metrics: Any, - optimized_metrics: Any, - comparison_value: str = "overall_score", - ) -> bool: - """Compare the metrics of the base and optimized models. Return true if the - optimized model is better than the base model. - - :param base_metrics: The metrics of the base model. :type base_metrics: Any - :param optimized_metrics: The metrics of the optimized model. :type - optimized_metrics: Any :param comparison_value: The value to compare the metrics - on. Determines which metric is used to compare the models. :type - comparison_value: str :return: True if the optimized model is better than the - base model, False otherwise. :rtype: bool - - """ - pass
    - - -
    -[docs] - def evaluate_evalset( - self, - examples: List[dspy.Example], - num_threads: int = 1, - display_progress: bool = True, - display_table: bool = True, - ) -> Dict[str, Any]: - """Take in a list of examples and evaluate the results. - - :param examples: The examples to evaluate the results on. :type examples: - List[dspy.Example] :param num_threads: The number of threads to use for - evaluation. :type num_threads: int :param display_progress: Whether to display - the progress of the evaluation. :type display_progress: bool :param - display_table: Whether to display the table of the evaluation. :type - display_table: bool :return: A dictionary containing the overall score, results, - and scores. :rtype: Dict[str, Any] - - """ - evaluator = dspy.Evaluate( - devset=examples, - num_threads=num_threads, - display_progress=display_progress, - display_table=display_table, - return_all_scores=True, - return_outputs=True, - ) - try: - overall_score, results, scores = evaluator(self.infer, self.evaluate_metric) # type: ignore - return self.format_metric(examples, overall_score, results, scores) # type: ignore - except Exception as e: - log.error("Error evaluating evalset: " + str(e)) - raise e
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train.html b/graphdoc/docs/_build/html/_modules/graphdoc/train.html deleted file mode 100644 index f649dd8..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/train.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - graphdoc.train — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.train

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from typing import Any, Dict, List
    -
    -# external packages
    -import dspy
    -
    -# internal packages
    -from graphdoc.train.doc_generator_trainer import DocGeneratorTrainer
    -from graphdoc.train.doc_quality_trainer import DocQualityTrainer
    -from graphdoc.train.optimizers import (
    -    _optimizer_kwargs_filter,
    -    optimizer_class,
    -    optimizer_compile,
    -)
    -from graphdoc.train.single_prompt_trainer import SinglePrompt, SinglePromptTrainer
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class TrainerFactory: -
    -[docs] - @staticmethod - def single_trainer( - trainer_class: str, - prompt: SinglePrompt, - optimizer_type: str, - optimizer_kwargs: Dict[str, Any], - mlflow_tracking_uri: str, - mlflow_model_name: str, - mlflow_experiment_name: str, - trainset: List[dspy.Example], - evalset: List[dspy.Example], - ): - """Returns an instance of the specified trainer class.""" - # update any potentially missing or conflicting values - optimizer_kwargs["metric"] = prompt.evaluate_metric - optimizer_kwargs["student"] = prompt.infer - optimizer_kwargs["trainset"] = trainset - - trainer_classes = { - "DocQualityTrainer": DocQualityTrainer, - "DocGeneratorTrainer": DocGeneratorTrainer, - } - if trainer_class not in trainer_classes: - raise ValueError(f"Unknown trainer class: {trainer_class}") - - try: - return trainer_classes[trainer_class]( - prompt=prompt, # type: ignore # TODO: we should have better type checking here - optimizer_type=optimizer_type, - optimizer_kwargs=optimizer_kwargs, - mlflow_tracking_uri=mlflow_tracking_uri, - mlflow_model_name=mlflow_model_name, - mlflow_experiment_name=mlflow_experiment_name, - trainset=trainset, - evalset=evalset, - ) - except Exception as e: - raise ValueError( - f"Failed to initialize trainer class ({trainer_class}): {e}" - )
    -
    - - - -__all__ = [ - "TrainerFactory", - "DocGeneratorTrainer", - "DocQualityTrainer", - "_optimizer_kwargs_filter", - "optimizer_class", - "optimizer_compile", - "SinglePrompt", - "SinglePromptTrainer", - "DocGeneratorTrainer", - "DocQualityTrainer", -] -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_generator_trainer.html b/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_generator_trainer.html deleted file mode 100644 index 9eddf9f..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_generator_trainer.html +++ /dev/null @@ -1,321 +0,0 @@ - - - - - - graphdoc.train.doc_generator_trainer — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
      -
    • - - -
    • -
    • -
    -
    -
    -
    -
    - -

    Source code for graphdoc.train.doc_generator_trainer

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -import math
    -from typing import Any, Dict, List, Optional, Tuple
    -
    -# external packages
    -import dspy
    -import mlflow
    -
    -from graphdoc.data import DspyDataHelper, GenerationDataHelper
    -
    -# internal packages
    -from graphdoc.prompts import DocGeneratorPrompt
    -from graphdoc.train.optimizers import optimizer_compile
    -from graphdoc.train.single_prompt_trainer import SinglePromptTrainer
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class DocGeneratorTrainer(SinglePromptTrainer): -
    -[docs] - def __init__( - self, - prompt: DocGeneratorPrompt, - optimizer_type: str, - optimizer_kwargs: Dict[str, Any], - mlflow_model_name: str, - mlflow_experiment_name: str, - mlflow_tracking_uri: str, - trainset: List[dspy.Example], - evalset: List[dspy.Example], - ): - """Initialize the DocGeneratorTrainer. - - :param prompt: The prompt to train. :type prompt: DocGeneratorPrompt :param - optimizer_type: The type of optimizer to use. :type optimizer_type: str :param - optimizer_kwargs: The keyword arguments for the optimizer. :type - optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model - in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name - of the experiment in mlflow. :type mlflow_experiment_name: str :param - mlflow_tracking_uri: The uri of the mlflow tracking server. :type - mlflow_tracking_uri: str :param trainset: The training set. :type trainset: - List[dspy.Example] :param evalset: The evaluation set. :type evalset: - List[dspy.Example] - - """ - super().__init__( - prompt, - optimizer_type, - optimizer_kwargs, - mlflow_model_name, - mlflow_experiment_name, - mlflow_tracking_uri, - trainset, - evalset, - ) - # Cast to DocGeneratorPrompt for type checking - if not isinstance(prompt, DocGeneratorPrompt): - raise TypeError(f"Expected DocGeneratorPrompt, got {type(prompt)}") - self.doc_generator_prompt = prompt
    - - -
    -[docs] - def _calculate_average_score(self, evaluation: dict) -> float: - """Given a dictionary of evaluation results, calculate the average score. - - :param evaluation: The evaluation results. - :type evaluation: Dict[str, Any] - :return: The average score. - :rtype: float - - """ - examples = evaluation["results"] - total = 0 - for ex in examples: - rating = math.sqrt(ex[2]) * 25 - total += rating - return round(total / len(examples), 6)
    - - -
    -[docs] - def evaluation_metrics( - self, base_evaluation: Dict[str, Any], optimized_evaluation: Dict[str, Any] - ) -> None: - """Log evaluation metrics to mlflow. - - :param base_evaluation: The evaluation metrics of the base model. :type - base_evaluation: Dict[str, Any] :param optimized_evaluation: The evaluation - metrics of the optimized model. :type optimized_evaluation: Dict[str, Any] - - """ - base_evaluation_overall_score = self._calculate_average_score(base_evaluation) - optimized_evaluation_overall_score = self._calculate_average_score( - optimized_evaluation - ) - - mlflow.log_metrics( - { - "base_evaluation_overall_score": base_evaluation_overall_score, - "optimized_evaluation_overall_score": optimized_evaluation_overall_score, - } - ) - log.info(f"Base Evaluation: {base_evaluation}") - log.info(f"Optimized Evaluation: {optimized_evaluation}") - mlflow.log_dict(base_evaluation, "base_evaluation.json") - mlflow.log_dict(optimized_evaluation, "optimized_evaluation.json")
    - - -
    -[docs] - def evaluate_training( - self, base_model, optimized_model - ) -> Tuple[Dict[str, Any], Dict[str, Any]]: - """Evaluate the training of the model. Comparing the base and optimized models. - - :param base_model: The base model. - :type base_model: Any - :param optimized_model: The optimized model. - :type optimized_model: Any - - """ - base_prompt = DocGeneratorPrompt( - prompt=DspyDataHelper.prompt_signature(base_model), - prompt_type=self.doc_generator_prompt.prompt_type, # type: ignore - # TODO: we should have better type checking here - prompt_metric=self.doc_generator_prompt.prompt_metric, # type: ignore - # TODO: we should have better type checking here - ) - - optimized_prompt = DocGeneratorPrompt( - prompt=DspyDataHelper.prompt_signature(optimized_model), - prompt_type=self.doc_generator_prompt.prompt_type, # type: ignore - # TODO: we should have better type checking here - prompt_metric=self.doc_generator_prompt.prompt_metric, # type: ignore - # TODO: we should have better type checking here - ) - - base_evaluation = base_prompt.evaluate_evalset(self.evalset) - optimized_evaluation = optimized_prompt.evaluate_evalset(self.evalset) - - self.evaluation_metrics(base_evaluation, optimized_evaluation) - return base_evaluation, optimized_evaluation
    - - -
    -[docs] - def train( - self, load_model_args: Optional[Dict[str, Any]] = None, save_model: bool = True - ): - """Train the document generator model. - - :param load_model_args: The arguments to load the model. :type load_model_args: - Optional[Dict[str, Any]] :param save_model: Whether to save the model. :type - save_model: bool :return: The trained model. :rtype: dspy.ChainOfThought - - """ - # if model args are provided, load the model from mlflow - if load_model_args: - base_model = self.mlflow_data_helper.model_by_args(load_model_args) - else: - base_model = self.doc_generator_prompt.infer - - # make sure the optimizer_kwargs include the student, - # overwriting whatever was provided if necessary - self.optimizer_kwargs["student"] = base_model - - # run the optimizer - log.info(f"Running {self.optimizer_type} optimizer...") - optimized_model = optimizer_compile(self.optimizer_type, self.optimizer_kwargs) - - # evaluate the training - base_evaluation, optimized_evaluation = self.evaluate_training( - base_model, optimized_model - ) - - # log the prompts - base_signature = DspyDataHelper.prompt_signature(base_model) - optimized_signature = DspyDataHelper.prompt_signature(optimized_model) - - base_prompt = DspyDataHelper.formatted_signature( - base_signature, GenerationDataHelper.example_example() - ) - optimized_prompt = DspyDataHelper.formatted_signature( - optimized_signature, GenerationDataHelper.example_example() - ) - - mlflow.log_text(base_prompt, "base_prompt.txt") - mlflow.log_text(optimized_prompt, "optimized_prompt.txt") - - # save the model - if save_model: - model_signature = GenerationDataHelper.model_signature() - self.mlflow_data_helper.save_model( - optimized_model, model_signature, self.mlflow_model_name - ) - - # compare the models - if self.doc_generator_prompt.compare_metrics( - base_evaluation, optimized_evaluation - ): # TODO: we should enable the passing of different comparison metrics - log.info( - "Model training successful, optimized model performs better than base model" - ) - else: - log.info("Trained model did not improve on base model") - - return optimized_model
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_quality_trainer.html b/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_quality_trainer.html deleted file mode 100644 index c1ae651..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/train/doc_quality_trainer.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - graphdoc.train.doc_quality_trainer — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
      -
    • - - -
    • -
    • -
    -
    -
    -
    -
    - -

    Source code for graphdoc.train.doc_quality_trainer

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import io
    -import logging
    -from typing import Any, Dict, List, Optional, Tuple
    -
    -# external packages
    -import dspy
    -import mlflow
    -import pandas as pd
    -
    -# internal packages
    -from graphdoc.data import DspyDataHelper, QualityDataHelper
    -from graphdoc.prompts import DocQualityPrompt
    -from graphdoc.train.optimizers import optimizer_compile
    -from graphdoc.train.single_prompt_trainer import SinglePromptTrainer
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class DocQualityTrainer(SinglePromptTrainer): -
    -[docs] - def __init__( - self, - prompt: DocQualityPrompt, - optimizer_type: str, - optimizer_kwargs: Dict[str, Any], - mlflow_model_name: str, - mlflow_experiment_name: str, - mlflow_tracking_uri: str, - trainset: List[dspy.Example], - evalset: List[dspy.Example], - ): - """Initialize the DocQualityTrainer. This is the base class for implementing a - trainer for a DocQualityPrompt. - - :param prompt: The prompt to train. :type prompt: DocQualityPrompt :param - optimizer_type: The type of optimizer to use. :type optimizer_type: str :param - optimizer_kwargs: The keyword arguments for the optimizer. :type - optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model - in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name - of the experiment in mlflow. :type mlflow_experiment_name: str :param - mlflow_tracking_uri: The uri of the mlflow tracking server. :type - mlflow_tracking_uri: str :param trainset: The training set. - - """ - super().__init__( - prompt=prompt, - optimizer_type=optimizer_type, - optimizer_kwargs=optimizer_kwargs, - mlflow_model_name=mlflow_model_name, - mlflow_experiment_name=mlflow_experiment_name, - mlflow_tracking_uri=mlflow_tracking_uri, - trainset=trainset, - evalset=evalset, - )
    - - - #################### - # Abstract Methods # - #################### -
    -[docs] - def evaluation_metrics(self, base_evaluation, optimized_evaluation): - """Log evaluation metrics to mlflow. We will log the overall scores and the per - category scores. Per category scores will be logged as a csv file. - - :param base_evaluation: The evaluation metrics of the base model. :type - base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the - optimized model. :type optimized_evaluation: Any - - """ - base_evaluation_overall_score = base_evaluation["overall_score"] - optimized_evaluation_overall_score = optimized_evaluation["overall_score"] - - mlflow.log_metrics( - { - "base_evaluation_overall_score": base_evaluation_overall_score, - "optimized_evaluation_overall_score": optimized_evaluation_overall_score, - } - ) - - metrics_data = { - "Evaluation Type": ["Base Evaluation", "Optimized Evaluation"], - "Overall Score": [ - base_evaluation_overall_score, - optimized_evaluation_overall_score, - ], - } - - for key, value in base_evaluation["per_category_scores"].items(): - metrics_data[f"{key} Percent Correct"] = [ - value["percent_correct"], - optimized_evaluation["per_category_scores"][key]["percent_correct"], - ] - metrics_data[f"{key} Total"] = [ - value["total"], - optimized_evaluation["per_category_scores"][key]["total"], - ] - metrics_data[f"{key} Correct"] = [ - value["correct"], - optimized_evaluation["per_category_scores"][key]["correct"], - ] - - df = pd.DataFrame(metrics_data) - csv_buffer = io.StringIO() - df.to_csv(csv_buffer, index=False) - mlflow.log_text(csv_buffer.getvalue(), "evaluation_comparison.csv")
    - - -
    -[docs] - def evaluate_training( - self, base_model, optimized_model - ) -> Tuple[Dict[str, Any], Dict[str, Any]]: - """Evaluate the training of the model. Comparing the base and optimized models. - - :param base_model: The base model. - :type base_model: Any - :param optimized_model: The optimized model. - :type optimized_model: Any - - """ - base_prompt = DocQualityPrompt( - prompt=DspyDataHelper.prompt_signature(base_model), - prompt_type=self.prompt.prompt_type, # type: ignore - # TODO: we should have better type handling, but we know this works - prompt_metric=self.prompt.prompt_metric, # type: ignore - # TODO: we should have better type handling, but we know this works - ) - - optimized_prompt = DocQualityPrompt( - prompt=DspyDataHelper.prompt_signature(optimized_model), - prompt_type=self.prompt.prompt_type, # type: ignore - # TODO: we should have better type handling, but we know this works - prompt_metric=self.prompt.prompt_metric, # type: ignore - # TODO: we should have better type handling, but we know this works - ) - - base_evaluation = base_prompt.evaluate_evalset(self.evalset) - optimized_evaluation = optimized_prompt.evaluate_evalset(self.evalset) - - self.evaluation_metrics(base_evaluation, optimized_evaluation) - return base_evaluation, optimized_evaluation
    - - -
    -[docs] - def train( - self, load_model_args: Optional[Dict[str, Any]] = None, save_model: bool = True - ): - """Train the model. If provided, we will load the model from mlflow. Otherwise, - we will use the provided DocQualityPrompt as the base model. - - :param load_model_args: The arguments to load the model. - :type load_model_args: Dict[str, Any] - :param save_model: Whether to save the model. - :type save_model: bool - - """ - # if model args are provided, load the model from mlflow. - if load_model_args: - # we assume the user wants to load the model as was stored, - # without modifying the module type (e.g. dspy.Predict, dspy.ChainOfThought) - base_model = self.mlflow_data_helper.model_by_args(load_model_args) - else: - base_model = self.prompt.infer - - # make sure the optimizer_kwargs include the student, - # overwriting whatever was provided if necessary - self.optimizer_kwargs["student"] = base_model - - # run the trainer - optimized_model = optimizer_compile(self.optimizer_type, self.optimizer_kwargs) - - # evaluate the training - base_evaluation, optimized_evaluation = self.evaluate_training( - base_model, optimized_model - ) - - # log the prompts - base_signature = DspyDataHelper.prompt_signature(base_model) - optimized_signature = DspyDataHelper.prompt_signature(optimized_model) - - base_prompt = DspyDataHelper.formatted_signature( - base_signature, QualityDataHelper.example_example() - ) - optimized_prompt = DspyDataHelper.formatted_signature( - optimized_signature, QualityDataHelper.example_example() - ) - - mlflow.log_text(base_prompt, "base_prompt.txt") - mlflow.log_text(optimized_prompt, "optimized_prompt.txt") - - # save the model - if save_model: - model_signature = QualityDataHelper.model_signature() - self.mlflow_data_helper.save_model( - optimized_model, model_signature, self.mlflow_model_name - ) - - # compare the models - if self.prompt.compare_metrics(base_evaluation, optimized_evaluation): - log.info( - "Model training successful, optimized model performs better than base model" - ) - else: - log.info("Trained model did not improve on base model") - return optimized_model
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train/optimizers.html b/graphdoc/docs/_build/html/_modules/graphdoc/train/optimizers.html deleted file mode 100644 index 0c0eb33..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/train/optimizers.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - graphdoc.train.optimizers — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for graphdoc.train.optimizers

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -import inspect
    -
    -# system packages
    -import logging
    -from typing import Any, Dict
    -
    -# external packages
    -import dspy
    -
    -# internal packages
    -
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -def _optimizer_kwargs_filter(init_signature, optimizer_kwargs: Dict[str, Any]):
    -    filtered_kwargs = {
    -        k: v for k, v in optimizer_kwargs.items() if k in init_signature.parameters
    -    }
    -    return filtered_kwargs
    -
    -
    -
    -[docs] -def optimizer_class(optimizer_type: str, optimizer_kwargs: Dict[str, Any]): - if optimizer_type == "miprov2": - # metric: Callable (this is a function that takes a prediction and an example) - # auto: str ("light", "medium", "heavy") - # ... - return dspy.MIPROv2( - **_optimizer_kwargs_filter( - init_signature=inspect.signature(dspy.MIPROv2.__init__), - optimizer_kwargs=optimizer_kwargs, - ) - ) - elif optimizer_type == "BootstrapFewShotWithRandomSearch": - # metric: Callable (this is a function that takes a prediction and an example) - # teacher_settings (dict, optional): Settings for the teacher predictor. - # Defaults to an empty dictionary. - # max_bootstrapped_demos (int, optional): Maximum number of bootstrapped demonstrations - # per predictor. Defaults to 4. - # max_labeled_demos (int, optional): Maximum number of labeled demonstrations - # per predictor. - # max_rounds (int, optional): Maximum number of bootstrapping rounds. Defaults to 1. - # num_candidate_programs (int): Number of candidate programs to generate - # during random search. - # num_threads (int): Number of threads used for evaluation during random search. - # Defaults to 6. - # max_errors (int): Maximum errors permitted during evaluation. - # Halts run with the latest error message. Defaults to 10. - # stop_at_score (float, optional): Score threshold for random search to stop early. - # Defaults to None. - # metric_threshold (float, optional): Score threshold for the metric to determine - # a successful example. Defaults to None. - return dspy.BootstrapFewShotWithRandomSearch( - **_optimizer_kwargs_filter( - init_signature=inspect.signature( - dspy.BootstrapFewShotWithRandomSearch.__init__ - ), - optimizer_kwargs=optimizer_kwargs, - ) - ) - else: - raise ValueError(f"Invalid optimizer type: {optimizer_type}")
    - - - -
    -[docs] -def optimizer_compile(optimizer_type: str, optimizer_kwargs: Dict[str, Any]): - """Compiles the optimizer given the optimizer type and optimizer kwargs. - - Optimizer kwargs are optimizer specific, and must include a student field that maps - to a dspy.ChainOfThought, dspy.Predict, etc. - - """ - optimizer = optimizer_class(optimizer_type, optimizer_kwargs) - # miprov2 - # student: dspy.ChainOfThought, dspy.Predict, etc. - # trainset: List[dspy.Example] - # max_labeled_demos: int - # max_bootstrapped_demos: int - - # BootstrapFewShotWithRandomSearch - # student: dspy.ChainOfThought, dspy.Predict, etc. - # trainset: List[dspy.Example] - return optimizer.compile( - **_optimizer_kwargs_filter( - init_signature=inspect.signature(optimizer.compile), - optimizer_kwargs=optimizer_kwargs, - ) - )
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/graphdoc/train/single_prompt_trainer.html b/graphdoc/docs/_build/html/_modules/graphdoc/train/single_prompt_trainer.html deleted file mode 100644 index d9daf28..0000000 --- a/graphdoc/docs/_build/html/_modules/graphdoc/train/single_prompt_trainer.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - graphdoc.train.single_prompt_trainer — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    -
      -
    • - - -
    • -
    • -
    -
    -
    -
    -
    - -

    Source code for graphdoc.train.single_prompt_trainer

    -# Copyright 2025-, Semiotic AI, Inc.
    -# SPDX-License-Identifier: Apache-2.0
    -
    -# system packages
    -import logging
    -from abc import ABC, abstractmethod
    -from typing import Any, Dict, List, Optional, Tuple
    -
    -# external packages
    -import dspy
    -import mlflow
    -
    -# internal packages
    -from graphdoc.data import MlflowDataHelper
    -from graphdoc.prompts import SinglePrompt
    -
    -# logging
    -log = logging.getLogger(__name__)
    -
    -
    -
    -[docs] -class SinglePromptTrainer(ABC): -
    -[docs] - def __init__( - self, - prompt: SinglePrompt, - optimizer_type: str, - optimizer_kwargs: Dict[str, Any], - mlflow_model_name: str, - mlflow_experiment_name: str, - mlflow_tracking_uri: str, - trainset: List[dspy.Example], - evalset: List[dspy.Example], - ): - """Initialize the SinglePromptTrainer. This is the base class for implementing a - trainer for a single prompt. - - :param prompt: The prompt to train. :type prompt: SinglePrompt :param - optimizer_type: The type of optimizer to use. :type optimizer_type: str :param - optimizer_kwargs: The keyword arguments for the optimizer. :type - optimizer_kwargs: Dict[str, Any] :param mlflow_model_name: The name of the model - in mlflow. :type mlflow_model_name: str :param mlflow_experiment_name: The name - of the experiment in mlflow. :type mlflow_experiment_name: str :param - mlflow_tracking_uri: The uri of the mlflow tracking server. :type - mlflow_tracking_uri: str :param trainset: The training set. :type trainset: - List[dspy.Example] - - """ - self.prompt = prompt - self.optimizer_type = optimizer_type - self.optimizer_kwargs = optimizer_kwargs - self.mlflow_model_name = mlflow_model_name - self.mlflow_tracking_uri = mlflow_tracking_uri - self.mlflow_experiment_name = mlflow_experiment_name - self.trainset = trainset - self.evalset = evalset - - # setup mlflow - log.info("---------------------------------------------------------") - log.info("Setting MLFlow tracking URI to " + str(self.mlflow_tracking_uri)) - log.info("---------------------------------------------------------") - - mlflow.dspy.autolog() - self.mlflow_data_helper = MlflowDataHelper(self.mlflow_tracking_uri) - experiment = mlflow.set_experiment(self.mlflow_experiment_name) - - log.info("Setting MLFlow experiment to " + str(self.mlflow_experiment_name)) - log.info("Experiment_id: " + str(experiment.experiment_id)) - log.info("Artifact Location: " + str(experiment.artifact_location)) - log.info(f"Tags: {experiment.tags}") - log.info("Lifecycle_stage: " + str(experiment.lifecycle_stage)) - log.info("---------------------------------------------------------")
    - - - #################### - # Abstract Methods # - #################### - - # TODO: decide on a return type and implement better type checking for parameters -
    -[docs] - @abstractmethod - def evaluation_metrics(self, base_evaluation, optimized_evaluation): - """Log evaluation metrics to mlflow. - - :param base_evaluation: The evaluation metrics of the base model. :type - base_evaluation: Any :param optimized_evaluation: The evaluation metrics of the - optimized model. :type optimized_evaluation: Any - - """ - pass
    - - -
    -[docs] - @abstractmethod - def evaluate_training( - self, base_model, optimized_model - ) -> Tuple[Dict[str, Any], Dict[str, Any]]: - """Evaluate the training of the model. Comparing the base and optimized models. - - :param base_model: The base model. - :type base_model: Any - :param optimized_model: The optimized model. - :type optimized_model: Any - - """ - pass
    - - -
    -[docs] - @abstractmethod - def train( - self, load_model_args: Optional[Dict[str, Any]] = None, save_model: bool = True - ): - """Train the model. - - :param load_model_args: The arguments to load the model. - :type load_model_args: Dict[str, Any] - :param save_model: Whether to save the model. - :type save_model: bool - - """ - pass
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/index.html b/graphdoc/docs/_build/html/_modules/index.html deleted file mode 100644 index 11f2238..0000000 --- a/graphdoc/docs/_build/html/_modules/index.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - Overview: module code — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_modules/logging.html b/graphdoc/docs/_build/html/_modules/logging.html deleted file mode 100644 index b6a7bee..0000000 --- a/graphdoc/docs/_build/html/_modules/logging.html +++ /dev/null @@ -1,2430 +0,0 @@ - - - - - - logging — GraphDoc 1.0 documentation - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -

    Source code for logging

    -# Copyright 2001-2022 by Vinay Sajip. All Rights Reserved.
    -#
    -# Permission to use, copy, modify, and distribute this software and its
    -# documentation for any purpose and without fee is hereby granted,
    -# provided that the above copyright notice appear in all copies and that
    -# both that copyright notice and this permission notice appear in
    -# supporting documentation, and that the name of Vinay Sajip
    -# not be used in advertising or publicity pertaining to distribution
    -# of the software without specific, written prior permission.
    -# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
    -# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
    -# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
    -# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
    -# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
    -# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    -
    -"""
    -Logging package for Python. Based on PEP 282 and comments thereto in
    -comp.lang.python.
    -
    -Copyright (C) 2001-2022 Vinay Sajip. All Rights Reserved.
    -
    -To use, simply 'import logging' and log away!
    -"""
    -
    -import sys, os, time, io, re, traceback, warnings, weakref, collections.abc
    -
    -from types import GenericAlias
    -from string import Template
    -from string import Formatter as StrFormatter
    -
    -
    -__all__ = ['BASIC_FORMAT', 'BufferingFormatter', 'CRITICAL', 'DEBUG', 'ERROR',
    -           'FATAL', 'FileHandler', 'Filter', 'Formatter', 'Handler', 'INFO',
    -           'LogRecord', 'Logger', 'LoggerAdapter', 'NOTSET', 'NullHandler',
    -           'StreamHandler', 'WARN', 'WARNING', 'addLevelName', 'basicConfig',
    -           'captureWarnings', 'critical', 'debug', 'disable', 'error',
    -           'exception', 'fatal', 'getLevelName', 'getLogger', 'getLoggerClass',
    -           'info', 'log', 'makeLogRecord', 'setLoggerClass', 'shutdown',
    -           'warn', 'warning', 'getLogRecordFactory', 'setLogRecordFactory',
    -           'lastResort', 'raiseExceptions', 'getLevelNamesMapping',
    -           'getHandlerByName', 'getHandlerNames']
    -
    -import threading
    -
    -__author__  = "Vinay Sajip <vinay_sajip@red-dove.com>"
    -__status__  = "production"
    -# The following module attributes are no longer updated.
    -__version__ = "0.5.1.2"
    -__date__    = "07 February 2010"
    -
    -#---------------------------------------------------------------------------
    -#   Miscellaneous module data
    -#---------------------------------------------------------------------------
    -
    -#
    -#_startTime is used as the base when calculating the relative time of events
    -#
    -_startTime = time.time_ns()
    -
    -#
    -#raiseExceptions is used to see if exceptions during handling should be
    -#propagated
    -#
    -raiseExceptions = True
    -
    -#
    -# If you don't want threading information in the log, set this to False
    -#
    -logThreads = True
    -
    -#
    -# If you don't want multiprocessing information in the log, set this to False
    -#
    -logMultiprocessing = True
    -
    -#
    -# If you don't want process information in the log, set this to False
    -#
    -logProcesses = True
    -
    -#
    -# If you don't want asyncio task information in the log, set this to False
    -#
    -logAsyncioTasks = True
    -
    -#---------------------------------------------------------------------------
    -#   Level related stuff
    -#---------------------------------------------------------------------------
    -#
    -# Default levels and level names, these can be replaced with any positive set
    -# of values having corresponding names. There is a pseudo-level, NOTSET, which
    -# is only really there as a lower limit for user-defined levels. Handlers and
    -# loggers are initialized with NOTSET so that they will log all messages, even
    -# at user-defined levels.
    -#
    -
    -CRITICAL = 50
    -FATAL = CRITICAL
    -ERROR = 40
    -WARNING = 30
    -WARN = WARNING
    -INFO = 20
    -DEBUG = 10
    -NOTSET = 0
    -
    -_levelToName = {
    -    CRITICAL: 'CRITICAL',
    -    ERROR: 'ERROR',
    -    WARNING: 'WARNING',
    -    INFO: 'INFO',
    -    DEBUG: 'DEBUG',
    -    NOTSET: 'NOTSET',
    -}
    -_nameToLevel = {
    -    'CRITICAL': CRITICAL,
    -    'FATAL': FATAL,
    -    'ERROR': ERROR,
    -    'WARN': WARNING,
    -    'WARNING': WARNING,
    -    'INFO': INFO,
    -    'DEBUG': DEBUG,
    -    'NOTSET': NOTSET,
    -}
    -
    -def getLevelNamesMapping():
    -    return _nameToLevel.copy()
    -
    -def getLevelName(level):
    -    """
    -    Return the textual or numeric representation of logging level 'level'.
    -
    -    If the level is one of the predefined levels (CRITICAL, ERROR, WARNING,
    -    INFO, DEBUG) then you get the corresponding string. If you have
    -    associated levels with names using addLevelName then the name you have
    -    associated with 'level' is returned.
    -
    -    If a numeric value corresponding to one of the defined levels is passed
    -    in, the corresponding string representation is returned.
    -
    -    If a string representation of the level is passed in, the corresponding
    -    numeric value is returned.
    -
    -    If no matching numeric or string value is passed in, the string
    -    'Level %s' % level is returned.
    -    """
    -    # See Issues #22386, #27937 and #29220 for why it's this way
    -    result = _levelToName.get(level)
    -    if result is not None:
    -        return result
    -    result = _nameToLevel.get(level)
    -    if result is not None:
    -        return result
    -    return "Level %s" % level
    -
    -def addLevelName(level, levelName):
    -    """
    -    Associate 'levelName' with 'level'.
    -
    -    This is used when converting levels to text during message formatting.
    -    """
    -    with _lock:
    -        _levelToName[level] = levelName
    -        _nameToLevel[levelName] = level
    -
    -if hasattr(sys, "_getframe"):
    -    currentframe = lambda: sys._getframe(1)
    -else: #pragma: no cover
    -    def currentframe():
    -        """Return the frame object for the caller's stack frame."""
    -        try:
    -            raise Exception
    -        except Exception as exc:
    -            return exc.__traceback__.tb_frame.f_back
    -
    -#
    -# _srcfile is used when walking the stack to check when we've got the first
    -# caller stack frame, by skipping frames whose filename is that of this
    -# module's source. It therefore should contain the filename of this module's
    -# source file.
    -#
    -# Ordinarily we would use __file__ for this, but frozen modules don't always
    -# have __file__ set, for some reason (see Issue #21736). Thus, we get the
    -# filename from a handy code object from a function defined in this module.
    -# (There's no particular reason for picking addLevelName.)
    -#
    -
    -_srcfile = os.path.normcase(addLevelName.__code__.co_filename)
    -
    -# _srcfile is only used in conjunction with sys._getframe().
    -# Setting _srcfile to None will prevent findCaller() from being called. This
    -# way, you can avoid the overhead of fetching caller information.
    -
    -# The following is based on warnings._is_internal_frame. It makes sure that
    -# frames of the import mechanism are skipped when logging at module level and
    -# using a stacklevel value greater than one.
    -def _is_internal_frame(frame):
    -    """Signal whether the frame is a CPython or logging module internal."""
    -    filename = os.path.normcase(frame.f_code.co_filename)
    -    return filename == _srcfile or (
    -        "importlib" in filename and "_bootstrap" in filename
    -    )
    -
    -
    -def _checkLevel(level):
    -    if isinstance(level, int):
    -        rv = level
    -    elif str(level) == level:
    -        if level not in _nameToLevel:
    -            raise ValueError("Unknown level: %r" % level)
    -        rv = _nameToLevel[level]
    -    else:
    -        raise TypeError("Level not an integer or a valid string: %r"
    -                        % (level,))
    -    return rv
    -
    -#---------------------------------------------------------------------------
    -#   Thread-related stuff
    -#---------------------------------------------------------------------------
    -
    -#
    -#_lock is used to serialize access to shared data structures in this module.
    -#This needs to be an RLock because fileConfig() creates and configures
    -#Handlers, and so might arbitrary user threads. Since Handler code updates the
    -#shared dictionary _handlers, it needs to acquire the lock. But if configuring,
    -#the lock would already have been acquired - so we need an RLock.
    -#The same argument applies to Loggers and Manager.loggerDict.
    -#
    -_lock = threading.RLock()
    -
    -def _prepareFork():
    -    """
    -    Prepare to fork a new child process by acquiring the module-level lock.
    -
    -    This should be used in conjunction with _afterFork().
    -    """
    -    # Wrap the lock acquisition in a try-except to prevent the lock from being
    -    # abandoned in the event of an asynchronous exception. See gh-106238.
    -    try:
    -        _lock.acquire()
    -    except BaseException:
    -        _lock.release()
    -        raise
    -
    -def _afterFork():
    -    """
    -    After a new child process has been forked, release the module-level lock.
    -
    -    This should be used in conjunction with _prepareFork().
    -    """
    -    _lock.release()
    -
    -
    -# Prevent a held logging lock from blocking a child from logging.
    -
    -if not hasattr(os, 'register_at_fork'):  # Windows and friends.
    -    def _register_at_fork_reinit_lock(instance):
    -        pass  # no-op when os.register_at_fork does not exist.
    -else:
    -    # A collection of instances with a _at_fork_reinit method (logging.Handler)
    -    # to be called in the child after forking.  The weakref avoids us keeping
    -    # discarded Handler instances alive.
    -    _at_fork_reinit_lock_weakset = weakref.WeakSet()
    -
    -    def _register_at_fork_reinit_lock(instance):
    -        with _lock:
    -            _at_fork_reinit_lock_weakset.add(instance)
    -
    -    def _after_at_fork_child_reinit_locks():
    -        for handler in _at_fork_reinit_lock_weakset:
    -            handler._at_fork_reinit()
    -
    -        # _prepareFork() was called in the parent before forking.
    -        # The lock is reinitialized to unlocked state.
    -        _lock._at_fork_reinit()
    -
    -    os.register_at_fork(before=_prepareFork,
    -                        after_in_child=_after_at_fork_child_reinit_locks,
    -                        after_in_parent=_afterFork)
    -
    -
    -#---------------------------------------------------------------------------
    -#   The logging record
    -#---------------------------------------------------------------------------
    -
    -class LogRecord(object):
    -    """
    -    A LogRecord instance represents an event being logged.
    -
    -    LogRecord instances are created every time something is logged. They
    -    contain all the information pertinent to the event being logged. The
    -    main information passed in is in msg and args, which are combined
    -    using str(msg) % args to create the message field of the record. The
    -    record also includes information such as when the record was created,
    -    the source line where the logging call was made, and any exception
    -    information to be logged.
    -    """
    -    def __init__(self, name, level, pathname, lineno,
    -                 msg, args, exc_info, func=None, sinfo=None, **kwargs):
    -        """
    -        Initialize a logging record with interesting information.
    -        """
    -        ct = time.time_ns()
    -        self.name = name
    -        self.msg = msg
    -        #
    -        # The following statement allows passing of a dictionary as a sole
    -        # argument, so that you can do something like
    -        #  logging.debug("a %(a)d b %(b)s", {'a':1, 'b':2})
    -        # Suggested by Stefan Behnel.
    -        # Note that without the test for args[0], we get a problem because
    -        # during formatting, we test to see if the arg is present using
    -        # 'if self.args:'. If the event being logged is e.g. 'Value is %d'
    -        # and if the passed arg fails 'if self.args:' then no formatting
    -        # is done. For example, logger.warning('Value is %d', 0) would log
    -        # 'Value is %d' instead of 'Value is 0'.
    -        # For the use case of passing a dictionary, this should not be a
    -        # problem.
    -        # Issue #21172: a request was made to relax the isinstance check
    -        # to hasattr(args[0], '__getitem__'). However, the docs on string
    -        # formatting still seem to suggest a mapping object is required.
    -        # Thus, while not removing the isinstance check, it does now look
    -        # for collections.abc.Mapping rather than, as before, dict.
    -        if (args and len(args) == 1 and isinstance(args[0], collections.abc.Mapping)
    -            and args[0]):
    -            args = args[0]
    -        self.args = args
    -        self.levelname = getLevelName(level)
    -        self.levelno = level
    -        self.pathname = pathname
    -        try:
    -            self.filename = os.path.basename(pathname)
    -            self.module = os.path.splitext(self.filename)[0]
    -        except (TypeError, ValueError, AttributeError):
    -            self.filename = pathname
    -            self.module = "Unknown module"
    -        self.exc_info = exc_info
    -        self.exc_text = None      # used to cache the traceback text
    -        self.stack_info = sinfo
    -        self.lineno = lineno
    -        self.funcName = func
    -        self.created = ct / 1e9  # ns to float seconds
    -        # Get the number of whole milliseconds (0-999) in the fractional part of seconds.
    -        # Eg: 1_677_903_920_999_998_503 ns --> 999_998_503 ns--> 999 ms
    -        # Convert to float by adding 0.0 for historical reasons. See gh-89047
    -        self.msecs = (ct % 1_000_000_000) // 1_000_000 + 0.0
    -        if self.msecs == 999.0 and int(self.created) != ct // 1_000_000_000:
    -            # ns -> sec conversion can round up, e.g:
    -            # 1_677_903_920_999_999_900 ns --> 1_677_903_921.0 sec
    -            self.msecs = 0.0
    -
    -        self.relativeCreated = (ct - _startTime) / 1e6
    -        if logThreads:
    -            self.thread = threading.get_ident()
    -            self.threadName = threading.current_thread().name
    -        else: # pragma: no cover
    -            self.thread = None
    -            self.threadName = None
    -        if not logMultiprocessing: # pragma: no cover
    -            self.processName = None
    -        else:
    -            self.processName = 'MainProcess'
    -            mp = sys.modules.get('multiprocessing')
    -            if mp is not None:
    -                # Errors may occur if multiprocessing has not finished loading
    -                # yet - e.g. if a custom import hook causes third-party code
    -                # to run when multiprocessing calls import. See issue 8200
    -                # for an example
    -                try:
    -                    self.processName = mp.current_process().name
    -                except Exception: #pragma: no cover
    -                    pass
    -        if logProcesses and hasattr(os, 'getpid'):
    -            self.process = os.getpid()
    -        else:
    -            self.process = None
    -
    -        self.taskName = None
    -        if logAsyncioTasks:
    -            asyncio = sys.modules.get('asyncio')
    -            if asyncio:
    -                try:
    -                    self.taskName = asyncio.current_task().get_name()
    -                except Exception:
    -                    pass
    -
    -    def __repr__(self):
    -        return '<LogRecord: %s, %s, %s, %s, "%s">'%(self.name, self.levelno,
    -            self.pathname, self.lineno, self.msg)
    -
    -    def getMessage(self):
    -        """
    -        Return the message for this LogRecord.
    -
    -        Return the message for this LogRecord after merging any user-supplied
    -        arguments with the message.
    -        """
    -        msg = str(self.msg)
    -        if self.args:
    -            msg = msg % self.args
    -        return msg
    -
    -#
    -#   Determine which class to use when instantiating log records.
    -#
    -_logRecordFactory = LogRecord
    -
    -def setLogRecordFactory(factory):
    -    """
    -    Set the factory to be used when instantiating a log record.
    -
    -    :param factory: A callable which will be called to instantiate
    -    a log record.
    -    """
    -    global _logRecordFactory
    -    _logRecordFactory = factory
    -
    -def getLogRecordFactory():
    -    """
    -    Return the factory to be used when instantiating a log record.
    -    """
    -
    -    return _logRecordFactory
    -
    -def makeLogRecord(dict):
    -    """
    -    Make a LogRecord whose attributes are defined by the specified dictionary,
    -    This function is useful for converting a logging event received over
    -    a socket connection (which is sent as a dictionary) into a LogRecord
    -    instance.
    -    """
    -    rv = _logRecordFactory(None, None, "", 0, "", (), None, None)
    -    rv.__dict__.update(dict)
    -    return rv
    -
    -
    -#---------------------------------------------------------------------------
    -#   Formatter classes and functions
    -#---------------------------------------------------------------------------
    -_str_formatter = StrFormatter()
    -del StrFormatter
    -
    -
    -class PercentStyle(object):
    -
    -    default_format = '%(message)s'
    -    asctime_format = '%(asctime)s'
    -    asctime_search = '%(asctime)'
    -    validation_pattern = re.compile(r'%\(\w+\)[#0+ -]*(\*|\d+)?(\.(\*|\d+))?[diouxefgcrsa%]', re.I)
    -
    -    def __init__(self, fmt, *, defaults=None):
    -        self._fmt = fmt or self.default_format
    -        self._defaults = defaults
    -
    -    def usesTime(self):
    -        return self._fmt.find(self.asctime_search) >= 0
    -
    -    def validate(self):
    -        """Validate the input format, ensure it matches the correct style"""
    -        if not self.validation_pattern.search(self._fmt):
    -            raise ValueError("Invalid format '%s' for '%s' style" % (self._fmt, self.default_format[0]))
    -
    -    def _format(self, record):
    -        if defaults := self._defaults:
    -            values = defaults | record.__dict__
    -        else:
    -            values = record.__dict__
    -        return self._fmt % values
    -
    -    def format(self, record):
    -        try:
    -            return self._format(record)
    -        except KeyError as e:
    -            raise ValueError('Formatting field not found in record: %s' % e)
    -
    -
    -class StrFormatStyle(PercentStyle):
    -    default_format = '{message}'
    -    asctime_format = '{asctime}'
    -    asctime_search = '{asctime'
    -
    -    fmt_spec = re.compile(r'^(.?[<>=^])?[+ -]?#?0?(\d+|{\w+})?[,_]?(\.(\d+|{\w+}))?[bcdefgnosx%]?$', re.I)
    -    field_spec = re.compile(r'^(\d+|\w+)(\.\w+|\[[^]]+\])*$')
    -
    -    def _format(self, record):
    -        if defaults := self._defaults:
    -            values = defaults | record.__dict__
    -        else:
    -            values = record.__dict__
    -        return self._fmt.format(**values)
    -
    -    def validate(self):
    -        """Validate the input format, ensure it is the correct string formatting style"""
    -        fields = set()
    -        try:
    -            for _, fieldname, spec, conversion in _str_formatter.parse(self._fmt):
    -                if fieldname:
    -                    if not self.field_spec.match(fieldname):
    -                        raise ValueError('invalid field name/expression: %r' % fieldname)
    -                    fields.add(fieldname)
    -                if conversion and conversion not in 'rsa':
    -                    raise ValueError('invalid conversion: %r' % conversion)
    -                if spec and not self.fmt_spec.match(spec):
    -                    raise ValueError('bad specifier: %r' % spec)
    -        except ValueError as e:
    -            raise ValueError('invalid format: %s' % e)
    -        if not fields:
    -            raise ValueError('invalid format: no fields')
    -
    -
    -class StringTemplateStyle(PercentStyle):
    -    default_format = '${message}'
    -    asctime_format = '${asctime}'
    -    asctime_search = '${asctime}'
    -
    -    def __init__(self, *args, **kwargs):
    -        super().__init__(*args, **kwargs)
    -        self._tpl = Template(self._fmt)
    -
    -    def usesTime(self):
    -        fmt = self._fmt
    -        return fmt.find('$asctime') >= 0 or fmt.find(self.asctime_search) >= 0
    -
    -    def validate(self):
    -        pattern = Template.pattern
    -        fields = set()
    -        for m in pattern.finditer(self._fmt):
    -            d = m.groupdict()
    -            if d['named']:
    -                fields.add(d['named'])
    -            elif d['braced']:
    -                fields.add(d['braced'])
    -            elif m.group(0) == '$':
    -                raise ValueError('invalid format: bare \'$\' not allowed')
    -        if not fields:
    -            raise ValueError('invalid format: no fields')
    -
    -    def _format(self, record):
    -        if defaults := self._defaults:
    -            values = defaults | record.__dict__
    -        else:
    -            values = record.__dict__
    -        return self._tpl.substitute(**values)
    -
    -
    -BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s"
    -
    -_STYLES = {
    -    '%': (PercentStyle, BASIC_FORMAT),
    -    '{': (StrFormatStyle, '{levelname}:{name}:{message}'),
    -    '$': (StringTemplateStyle, '${levelname}:${name}:${message}'),
    -}
    -
    -class Formatter(object):
    -    """
    -    Formatter instances are used to convert a LogRecord to text.
    -
    -    Formatters need to know how a LogRecord is constructed. They are
    -    responsible for converting a LogRecord to (usually) a string which can
    -    be interpreted by either a human or an external system. The base Formatter
    -    allows a formatting string to be specified. If none is supplied, the
    -    style-dependent default value, "%(message)s", "{message}", or
    -    "${message}", is used.
    -
    -    The Formatter can be initialized with a format string which makes use of
    -    knowledge of the LogRecord attributes - e.g. the default value mentioned
    -    above makes use of the fact that the user's message and arguments are pre-
    -    formatted into a LogRecord's message attribute. Currently, the useful
    -    attributes in a LogRecord are described by:
    -
    -    %(name)s            Name of the logger (logging channel)
    -    %(levelno)s         Numeric logging level for the message (DEBUG, INFO,
    -                        WARNING, ERROR, CRITICAL)
    -    %(levelname)s       Text logging level for the message ("DEBUG", "INFO",
    -                        "WARNING", "ERROR", "CRITICAL")
    -    %(pathname)s        Full pathname of the source file where the logging
    -                        call was issued (if available)
    -    %(filename)s        Filename portion of pathname
    -    %(module)s          Module (name portion of filename)
    -    %(lineno)d          Source line number where the logging call was issued
    -                        (if available)
    -    %(funcName)s        Function name
    -    %(created)f         Time when the LogRecord was created (time.time_ns() / 1e9
    -                        return value)
    -    %(asctime)s         Textual time when the LogRecord was created
    -    %(msecs)d           Millisecond portion of the creation time
    -    %(relativeCreated)d Time in milliseconds when the LogRecord was created,
    -                        relative to the time the logging module was loaded
    -                        (typically at application startup time)
    -    %(thread)d          Thread ID (if available)
    -    %(threadName)s      Thread name (if available)
    -    %(taskName)s        Task name (if available)
    -    %(process)d         Process ID (if available)
    -    %(message)s         The result of record.getMessage(), computed just as
    -                        the record is emitted
    -    """
    -
    -    converter = time.localtime
    -
    -    def __init__(self, fmt=None, datefmt=None, style='%', validate=True, *,
    -                 defaults=None):
    -        """
    -        Initialize the formatter with specified format strings.
    -
    -        Initialize the formatter either with the specified format string, or a
    -        default as described above. Allow for specialized date formatting with
    -        the optional datefmt argument. If datefmt is omitted, you get an
    -        ISO8601-like (or RFC 3339-like) format.
    -
    -        Use a style parameter of '%', '{' or '$' to specify that you want to
    -        use one of %-formatting, :meth:`str.format` (``{}``) formatting or
    -        :class:`string.Template` formatting in your format string.
    -
    -        .. versionchanged:: 3.2
    -           Added the ``style`` parameter.
    -        """
    -        if style not in _STYLES:
    -            raise ValueError('Style must be one of: %s' % ','.join(
    -                             _STYLES.keys()))
    -        self._style = _STYLES[style][0](fmt, defaults=defaults)
    -        if validate:
    -            self._style.validate()
    -
    -        self._fmt = self._style._fmt
    -        self.datefmt = datefmt
    -
    -    default_time_format = '%Y-%m-%d %H:%M:%S'
    -    default_msec_format = '%s,%03d'
    -
    -    def formatTime(self, record, datefmt=None):
    -        """
    -        Return the creation time of the specified LogRecord as formatted text.
    -
    -        This method should be called from format() by a formatter which
    -        wants to make use of a formatted time. This method can be overridden
    -        in formatters to provide for any specific requirement, but the
    -        basic behaviour is as follows: if datefmt (a string) is specified,
    -        it is used with time.strftime() to format the creation time of the
    -        record. Otherwise, an ISO8601-like (or RFC 3339-like) format is used.
    -        The resulting string is returned. This function uses a user-configurable
    -        function to convert the creation time to a tuple. By default,
    -        time.localtime() is used; to change this for a particular formatter
    -        instance, set the 'converter' attribute to a function with the same
    -        signature as time.localtime() or time.gmtime(). To change it for all
    -        formatters, for example if you want all logging times to be shown in GMT,
    -        set the 'converter' attribute in the Formatter class.
    -        """
    -        ct = self.converter(record.created)
    -        if datefmt:
    -            s = time.strftime(datefmt, ct)
    -        else:
    -            s = time.strftime(self.default_time_format, ct)
    -            if self.default_msec_format:
    -                s = self.default_msec_format % (s, record.msecs)
    -        return s
    -
    -    def formatException(self, ei):
    -        """
    -        Format and return the specified exception information as a string.
    -
    -        This default implementation just uses
    -        traceback.print_exception()
    -        """
    -        sio = io.StringIO()
    -        tb = ei[2]
    -        # See issues #9427, #1553375. Commented out for now.
    -        #if getattr(self, 'fullstack', False):
    -        #    traceback.print_stack(tb.tb_frame.f_back, file=sio)
    -        traceback.print_exception(ei[0], ei[1], tb, limit=None, file=sio)
    -        s = sio.getvalue()
    -        sio.close()
    -        if s[-1:] == "\n":
    -            s = s[:-1]
    -        return s
    -
    -    def usesTime(self):
    -        """
    -        Check if the format uses the creation time of the record.
    -        """
    -        return self._style.usesTime()
    -
    -    def formatMessage(self, record):
    -        return self._style.format(record)
    -
    -    def formatStack(self, stack_info):
    -        """
    -        This method is provided as an extension point for specialized
    -        formatting of stack information.
    -
    -        The input data is a string as returned from a call to
    -        :func:`traceback.print_stack`, but with the last trailing newline
    -        removed.
    -
    -        The base implementation just returns the value passed in.
    -        """
    -        return stack_info
    -
    -    def format(self, record):
    -        """
    -        Format the specified record as text.
    -
    -        The record's attribute dictionary is used as the operand to a
    -        string formatting operation which yields the returned string.
    -        Before formatting the dictionary, a couple of preparatory steps
    -        are carried out. The message attribute of the record is computed
    -        using LogRecord.getMessage(). If the formatting string uses the
    -        time (as determined by a call to usesTime(), formatTime() is
    -        called to format the event time. If there is exception information,
    -        it is formatted using formatException() and appended to the message.
    -        """
    -        record.message = record.getMessage()
    -        if self.usesTime():
    -            record.asctime = self.formatTime(record, self.datefmt)
    -        s = self.formatMessage(record)
    -        if record.exc_info:
    -            # Cache the traceback text to avoid converting it multiple times
    -            # (it's constant anyway)
    -            if not record.exc_text:
    -                record.exc_text = self.formatException(record.exc_info)
    -        if record.exc_text:
    -            if s[-1:] != "\n":
    -                s = s + "\n"
    -            s = s + record.exc_text
    -        if record.stack_info:
    -            if s[-1:] != "\n":
    -                s = s + "\n"
    -            s = s + self.formatStack(record.stack_info)
    -        return s
    -
    -#
    -#   The default formatter to use when no other is specified
    -#
    -_defaultFormatter = Formatter()
    -
    -class BufferingFormatter(object):
    -    """
    -    A formatter suitable for formatting a number of records.
    -    """
    -    def __init__(self, linefmt=None):
    -        """
    -        Optionally specify a formatter which will be used to format each
    -        individual record.
    -        """
    -        if linefmt:
    -            self.linefmt = linefmt
    -        else:
    -            self.linefmt = _defaultFormatter
    -
    -    def formatHeader(self, records):
    -        """
    -        Return the header string for the specified records.
    -        """
    -        return ""
    -
    -    def formatFooter(self, records):
    -        """
    -        Return the footer string for the specified records.
    -        """
    -        return ""
    -
    -    def format(self, records):
    -        """
    -        Format the specified records and return the result as a string.
    -        """
    -        rv = ""
    -        if len(records) > 0:
    -            rv = rv + self.formatHeader(records)
    -            for record in records:
    -                rv = rv + self.linefmt.format(record)
    -            rv = rv + self.formatFooter(records)
    -        return rv
    -
    -#---------------------------------------------------------------------------
    -#   Filter classes and functions
    -#---------------------------------------------------------------------------
    -
    -class Filter(object):
    -    """
    -    Filter instances are used to perform arbitrary filtering of LogRecords.
    -
    -    Loggers and Handlers can optionally use Filter instances to filter
    -    records as desired. The base filter class only allows events which are
    -    below a certain point in the logger hierarchy. For example, a filter
    -    initialized with "A.B" will allow events logged by loggers "A.B",
    -    "A.B.C", "A.B.C.D", "A.B.D" etc. but not "A.BB", "B.A.B" etc. If
    -    initialized with the empty string, all events are passed.
    -    """
    -    def __init__(self, name=''):
    -        """
    -        Initialize a filter.
    -
    -        Initialize with the name of the logger which, together with its
    -        children, will have its events allowed through the filter. If no
    -        name is specified, allow every event.
    -        """
    -        self.name = name
    -        self.nlen = len(name)
    -
    -    def filter(self, record):
    -        """
    -        Determine if the specified record is to be logged.
    -
    -        Returns True if the record should be logged, or False otherwise.
    -        If deemed appropriate, the record may be modified in-place.
    -        """
    -        if self.nlen == 0:
    -            return True
    -        elif self.name == record.name:
    -            return True
    -        elif record.name.find(self.name, 0, self.nlen) != 0:
    -            return False
    -        return (record.name[self.nlen] == ".")
    -
    -class Filterer(object):
    -    """
    -    A base class for loggers and handlers which allows them to share
    -    common code.
    -    """
    -    def __init__(self):
    -        """
    -        Initialize the list of filters to be an empty list.
    -        """
    -        self.filters = []
    -
    -    def addFilter(self, filter):
    -        """
    -        Add the specified filter to this handler.
    -        """
    -        if not (filter in self.filters):
    -            self.filters.append(filter)
    -
    -    def removeFilter(self, filter):
    -        """
    -        Remove the specified filter from this handler.
    -        """
    -        if filter in self.filters:
    -            self.filters.remove(filter)
    -
    -    def filter(self, record):
    -        """
    -        Determine if a record is loggable by consulting all the filters.
    -
    -        The default is to allow the record to be logged; any filter can veto
    -        this by returning a false value.
    -        If a filter attached to a handler returns a log record instance,
    -        then that instance is used in place of the original log record in
    -        any further processing of the event by that handler.
    -        If a filter returns any other true value, the original log record
    -        is used in any further processing of the event by that handler.
    -
    -        If none of the filters return false values, this method returns
    -        a log record.
    -        If any of the filters return a false value, this method returns
    -        a false value.
    -
    -        .. versionchanged:: 3.2
    -
    -           Allow filters to be just callables.
    -
    -        .. versionchanged:: 3.12
    -           Allow filters to return a LogRecord instead of
    -           modifying it in place.
    -        """
    -        for f in self.filters:
    -            if hasattr(f, 'filter'):
    -                result = f.filter(record)
    -            else:
    -                result = f(record) # assume callable - will raise if not
    -            if not result:
    -                return False
    -            if isinstance(result, LogRecord):
    -                record = result
    -        return record
    -
    -#---------------------------------------------------------------------------
    -#   Handler classes and functions
    -#---------------------------------------------------------------------------
    -
    -_handlers = weakref.WeakValueDictionary()  #map of handler names to handlers
    -_handlerList = [] # added to allow handlers to be removed in reverse of order initialized
    -
    -def _removeHandlerRef(wr):
    -    """
    -    Remove a handler reference from the internal cleanup list.
    -    """
    -    # This function can be called during module teardown, when globals are
    -    # set to None. It can also be called from another thread. So we need to
    -    # pre-emptively grab the necessary globals and check if they're None,
    -    # to prevent race conditions and failures during interpreter shutdown.
    -    handlers, lock = _handlerList, _lock
    -    if lock and handlers:
    -        with lock:
    -            try:
    -                handlers.remove(wr)
    -            except ValueError:
    -                pass
    -
    -def _addHandlerRef(handler):
    -    """
    -    Add a handler to the internal cleanup list using a weak reference.
    -    """
    -    with _lock:
    -        _handlerList.append(weakref.ref(handler, _removeHandlerRef))
    -
    -
    -def getHandlerByName(name):
    -    """
    -    Get a handler with the specified *name*, or None if there isn't one with
    -    that name.
    -    """
    -    return _handlers.get(name)
    -
    -
    -def getHandlerNames():
    -    """
    -    Return all known handler names as an immutable set.
    -    """
    -    return frozenset(_handlers)
    -
    -
    -class Handler(Filterer):
    -    """
    -    Handler instances dispatch logging events to specific destinations.
    -
    -    The base handler class. Acts as a placeholder which defines the Handler
    -    interface. Handlers can optionally use Formatter instances to format
    -    records as desired. By default, no formatter is specified; in this case,
    -    the 'raw' message as determined by record.message is logged.
    -    """
    -    def __init__(self, level=NOTSET):
    -        """
    -        Initializes the instance - basically setting the formatter to None
    -        and the filter list to empty.
    -        """
    -        Filterer.__init__(self)
    -        self._name = None
    -        self.level = _checkLevel(level)
    -        self.formatter = None
    -        self._closed = False
    -        # Add the handler to the global _handlerList (for cleanup on shutdown)
    -        _addHandlerRef(self)
    -        self.createLock()
    -
    -    def get_name(self):
    -        return self._name
    -
    -    def set_name(self, name):
    -        with _lock:
    -            if self._name in _handlers:
    -                del _handlers[self._name]
    -            self._name = name
    -            if name:
    -                _handlers[name] = self
    -
    -    name = property(get_name, set_name)
    -
    -    def createLock(self):
    -        """
    -        Acquire a thread lock for serializing access to the underlying I/O.
    -        """
    -        self.lock = threading.RLock()
    -        _register_at_fork_reinit_lock(self)
    -
    -    def _at_fork_reinit(self):
    -        self.lock._at_fork_reinit()
    -
    -    def acquire(self):
    -        """
    -        Acquire the I/O thread lock.
    -        """
    -        if self.lock:
    -            self.lock.acquire()
    -
    -    def release(self):
    -        """
    -        Release the I/O thread lock.
    -        """
    -        if self.lock:
    -            self.lock.release()
    -
    -    def setLevel(self, level):
    -        """
    -        Set the logging level of this handler.  level must be an int or a str.
    -        """
    -        self.level = _checkLevel(level)
    -
    -    def format(self, record):
    -        """
    -        Format the specified record.
    -
    -        If a formatter is set, use it. Otherwise, use the default formatter
    -        for the module.
    -        """
    -        if self.formatter:
    -            fmt = self.formatter
    -        else:
    -            fmt = _defaultFormatter
    -        return fmt.format(record)
    -
    -    def emit(self, record):
    -        """
    -        Do whatever it takes to actually log the specified logging record.
    -
    -        This version is intended to be implemented by subclasses and so
    -        raises a NotImplementedError.
    -        """
    -        raise NotImplementedError('emit must be implemented '
    -                                  'by Handler subclasses')
    -
    -    def handle(self, record):
    -        """
    -        Conditionally emit the specified logging record.
    -
    -        Emission depends on filters which may have been added to the handler.
    -        Wrap the actual emission of the record with acquisition/release of
    -        the I/O thread lock.
    -
    -        Returns an instance of the log record that was emitted
    -        if it passed all filters, otherwise a false value is returned.
    -        """
    -        rv = self.filter(record)
    -        if isinstance(rv, LogRecord):
    -            record = rv
    -        if rv:
    -            with self.lock:
    -                self.emit(record)
    -        return rv
    -
    -    def setFormatter(self, fmt):
    -        """
    -        Set the formatter for this handler.
    -        """
    -        self.formatter = fmt
    -
    -    def flush(self):
    -        """
    -        Ensure all logging output has been flushed.
    -
    -        This version does nothing and is intended to be implemented by
    -        subclasses.
    -        """
    -        pass
    -
    -    def close(self):
    -        """
    -        Tidy up any resources used by the handler.
    -
    -        This version removes the handler from an internal map of handlers,
    -        _handlers, which is used for handler lookup by name. Subclasses
    -        should ensure that this gets called from overridden close()
    -        methods.
    -        """
    -        #get the module data lock, as we're updating a shared structure.
    -        with _lock:
    -            self._closed = True
    -            if self._name and self._name in _handlers:
    -                del _handlers[self._name]
    -
    -    def handleError(self, record):
    -        """
    -        Handle errors which occur during an emit() call.
    -
    -        This method should be called from handlers when an exception is
    -        encountered during an emit() call. If raiseExceptions is false,
    -        exceptions get silently ignored. This is what is mostly wanted
    -        for a logging system - most users will not care about errors in
    -        the logging system, they are more interested in application errors.
    -        You could, however, replace this with a custom handler if you wish.
    -        The record which was being processed is passed in to this method.
    -        """
    -        if raiseExceptions and sys.stderr:  # see issue 13807
    -            exc = sys.exception()
    -            try:
    -                sys.stderr.write('--- Logging error ---\n')
    -                traceback.print_exception(exc, limit=None, file=sys.stderr)
    -                sys.stderr.write('Call stack:\n')
    -                # Walk the stack frame up until we're out of logging,
    -                # so as to print the calling context.
    -                frame = exc.__traceback__.tb_frame
    -                while (frame and os.path.dirname(frame.f_code.co_filename) ==
    -                       __path__[0]):
    -                    frame = frame.f_back
    -                if frame:
    -                    traceback.print_stack(frame, file=sys.stderr)
    -                else:
    -                    # couldn't find the right stack frame, for some reason
    -                    sys.stderr.write('Logged from file %s, line %s\n' % (
    -                                     record.filename, record.lineno))
    -                # Issue 18671: output logging message and arguments
    -                try:
    -                    sys.stderr.write('Message: %r\n'
    -                                     'Arguments: %s\n' % (record.msg,
    -                                                          record.args))
    -                except RecursionError:  # See issue 36272
    -                    raise
    -                except Exception:
    -                    sys.stderr.write('Unable to print the message and arguments'
    -                                     ' - possible formatting error.\nUse the'
    -                                     ' traceback above to help find the error.\n'
    -                                    )
    -            except OSError: #pragma: no cover
    -                pass    # see issue 5971
    -            finally:
    -                del exc
    -
    -    def __repr__(self):
    -        level = getLevelName(self.level)
    -        return '<%s (%s)>' % (self.__class__.__name__, level)
    -
    -class StreamHandler(Handler):
    -    """
    -    A handler class which writes logging records, appropriately formatted,
    -    to a stream. Note that this class does not close the stream, as
    -    sys.stdout or sys.stderr may be used.
    -    """
    -
    -    terminator = '\n'
    -
    -    def __init__(self, stream=None):
    -        """
    -        Initialize the handler.
    -
    -        If stream is not specified, sys.stderr is used.
    -        """
    -        Handler.__init__(self)
    -        if stream is None:
    -            stream = sys.stderr
    -        self.stream = stream
    -
    -    def flush(self):
    -        """
    -        Flushes the stream.
    -        """
    -        with self.lock:
    -            if self.stream and hasattr(self.stream, "flush"):
    -                self.stream.flush()
    -
    -    def emit(self, record):
    -        """
    -        Emit a record.
    -
    -        If a formatter is specified, it is used to format the record.
    -        The record is then written to the stream with a trailing newline.  If
    -        exception information is present, it is formatted using
    -        traceback.print_exception and appended to the stream.  If the stream
    -        has an 'encoding' attribute, it is used to determine how to do the
    -        output to the stream.
    -        """
    -        try:
    -            msg = self.format(record)
    -            stream = self.stream
    -            # issue 35046: merged two stream.writes into one.
    -            stream.write(msg + self.terminator)
    -            self.flush()
    -        except RecursionError:  # See issue 36272
    -            raise
    -        except Exception:
    -            self.handleError(record)
    -
    -    def setStream(self, stream):
    -        """
    -        Sets the StreamHandler's stream to the specified value,
    -        if it is different.
    -
    -        Returns the old stream, if the stream was changed, or None
    -        if it wasn't.
    -        """
    -        if stream is self.stream:
    -            result = None
    -        else:
    -            result = self.stream
    -            with self.lock:
    -                self.flush()
    -                self.stream = stream
    -        return result
    -
    -    def __repr__(self):
    -        level = getLevelName(self.level)
    -        name = getattr(self.stream, 'name', '')
    -        #  bpo-36015: name can be an int
    -        name = str(name)
    -        if name:
    -            name += ' '
    -        return '<%s %s(%s)>' % (self.__class__.__name__, name, level)
    -
    -    __class_getitem__ = classmethod(GenericAlias)
    -
    -
    -class FileHandler(StreamHandler):
    -    """
    -    A handler class which writes formatted logging records to disk files.
    -    """
    -    def __init__(self, filename, mode='a', encoding=None, delay=False, errors=None):
    -        """
    -        Open the specified file and use it as the stream for logging.
    -        """
    -        # Issue #27493: add support for Path objects to be passed in
    -        filename = os.fspath(filename)
    -        #keep the absolute path, otherwise derived classes which use this
    -        #may come a cropper when the current directory changes
    -        self.baseFilename = os.path.abspath(filename)
    -        self.mode = mode
    -        self.encoding = encoding
    -        if "b" not in mode:
    -            self.encoding = io.text_encoding(encoding)
    -        self.errors = errors
    -        self.delay = delay
    -        # bpo-26789: FileHandler keeps a reference to the builtin open()
    -        # function to be able to open or reopen the file during Python
    -        # finalization.
    -        self._builtin_open = open
    -        if delay:
    -            #We don't open the stream, but we still need to call the
    -            #Handler constructor to set level, formatter, lock etc.
    -            Handler.__init__(self)
    -            self.stream = None
    -        else:
    -            StreamHandler.__init__(self, self._open())
    -
    -    def close(self):
    -        """
    -        Closes the stream.
    -        """
    -        with self.lock:
    -            try:
    -                if self.stream:
    -                    try:
    -                        self.flush()
    -                    finally:
    -                        stream = self.stream
    -                        self.stream = None
    -                        if hasattr(stream, "close"):
    -                            stream.close()
    -            finally:
    -                # Issue #19523: call unconditionally to
    -                # prevent a handler leak when delay is set
    -                # Also see Issue #42378: we also rely on
    -                # self._closed being set to True there
    -                StreamHandler.close(self)
    -
    -    def _open(self):
    -        """
    -        Open the current base file with the (original) mode and encoding.
    -        Return the resulting stream.
    -        """
    -        open_func = self._builtin_open
    -        return open_func(self.baseFilename, self.mode,
    -                         encoding=self.encoding, errors=self.errors)
    -
    -    def emit(self, record):
    -        """
    -        Emit a record.
    -
    -        If the stream was not opened because 'delay' was specified in the
    -        constructor, open it before calling the superclass's emit.
    -
    -        If stream is not open, current mode is 'w' and `_closed=True`, record
    -        will not be emitted (see Issue #42378).
    -        """
    -        if self.stream is None:
    -            if self.mode != 'w' or not self._closed:
    -                self.stream = self._open()
    -        if self.stream:
    -            StreamHandler.emit(self, record)
    -
    -    def __repr__(self):
    -        level = getLevelName(self.level)
    -        return '<%s %s (%s)>' % (self.__class__.__name__, self.baseFilename, level)
    -
    -
    -class _StderrHandler(StreamHandler):
    -    """
    -    This class is like a StreamHandler using sys.stderr, but always uses
    -    whatever sys.stderr is currently set to rather than the value of
    -    sys.stderr at handler construction time.
    -    """
    -    def __init__(self, level=NOTSET):
    -        """
    -        Initialize the handler.
    -        """
    -        Handler.__init__(self, level)
    -
    -    @property
    -    def stream(self):
    -        return sys.stderr
    -
    -
    -_defaultLastResort = _StderrHandler(WARNING)
    -lastResort = _defaultLastResort
    -
    -#---------------------------------------------------------------------------
    -#   Manager classes and functions
    -#---------------------------------------------------------------------------
    -
    -class PlaceHolder(object):
    -    """
    -    PlaceHolder instances are used in the Manager logger hierarchy to take
    -    the place of nodes for which no loggers have been defined. This class is
    -    intended for internal use only and not as part of the public API.
    -    """
    -    def __init__(self, alogger):
    -        """
    -        Initialize with the specified logger being a child of this placeholder.
    -        """
    -        self.loggerMap = { alogger : None }
    -
    -    def append(self, alogger):
    -        """
    -        Add the specified logger as a child of this placeholder.
    -        """
    -        if alogger not in self.loggerMap:
    -            self.loggerMap[alogger] = None
    -
    -#
    -#   Determine which class to use when instantiating loggers.
    -#
    -
    -def setLoggerClass(klass):
    -    """
    -    Set the class to be used when instantiating a logger. The class should
    -    define __init__() such that only a name argument is required, and the
    -    __init__() should call Logger.__init__()
    -    """
    -    if klass != Logger:
    -        if not issubclass(klass, Logger):
    -            raise TypeError("logger not derived from logging.Logger: "
    -                            + klass.__name__)
    -    global _loggerClass
    -    _loggerClass = klass
    -
    -def getLoggerClass():
    -    """
    -    Return the class to be used when instantiating a logger.
    -    """
    -    return _loggerClass
    -
    -class Manager(object):
    -    """
    -    There is [under normal circumstances] just one Manager instance, which
    -    holds the hierarchy of loggers.
    -    """
    -    def __init__(self, rootnode):
    -        """
    -        Initialize the manager with the root node of the logger hierarchy.
    -        """
    -        self.root = rootnode
    -        self.disable = 0
    -        self.emittedNoHandlerWarning = False
    -        self.loggerDict = {}
    -        self.loggerClass = None
    -        self.logRecordFactory = None
    -
    -    @property
    -    def disable(self):
    -        return self._disable
    -
    -    @disable.setter
    -    def disable(self, value):
    -        self._disable = _checkLevel(value)
    -
    -    def getLogger(self, name):
    -        """
    -        Get a logger with the specified name (channel name), creating it
    -        if it doesn't yet exist. This name is a dot-separated hierarchical
    -        name, such as "a", "a.b", "a.b.c" or similar.
    -
    -        If a PlaceHolder existed for the specified name [i.e. the logger
    -        didn't exist but a child of it did], replace it with the created
    -        logger and fix up the parent/child references which pointed to the
    -        placeholder to now point to the logger.
    -        """
    -        rv = None
    -        if not isinstance(name, str):
    -            raise TypeError('A logger name must be a string')
    -        with _lock:
    -            if name in self.loggerDict:
    -                rv = self.loggerDict[name]
    -                if isinstance(rv, PlaceHolder):
    -                    ph = rv
    -                    rv = (self.loggerClass or _loggerClass)(name)
    -                    rv.manager = self
    -                    self.loggerDict[name] = rv
    -                    self._fixupChildren(ph, rv)
    -                    self._fixupParents(rv)
    -            else:
    -                rv = (self.loggerClass or _loggerClass)(name)
    -                rv.manager = self
    -                self.loggerDict[name] = rv
    -                self._fixupParents(rv)
    -        return rv
    -
    -    def setLoggerClass(self, klass):
    -        """
    -        Set the class to be used when instantiating a logger with this Manager.
    -        """
    -        if klass != Logger:
    -            if not issubclass(klass, Logger):
    -                raise TypeError("logger not derived from logging.Logger: "
    -                                + klass.__name__)
    -        self.loggerClass = klass
    -
    -    def setLogRecordFactory(self, factory):
    -        """
    -        Set the factory to be used when instantiating a log record with this
    -        Manager.
    -        """
    -        self.logRecordFactory = factory
    -
    -    def _fixupParents(self, alogger):
    -        """
    -        Ensure that there are either loggers or placeholders all the way
    -        from the specified logger to the root of the logger hierarchy.
    -        """
    -        name = alogger.name
    -        i = name.rfind(".")
    -        rv = None
    -        while (i > 0) and not rv:
    -            substr = name[:i]
    -            if substr not in self.loggerDict:
    -                self.loggerDict[substr] = PlaceHolder(alogger)
    -            else:
    -                obj = self.loggerDict[substr]
    -                if isinstance(obj, Logger):
    -                    rv = obj
    -                else:
    -                    assert isinstance(obj, PlaceHolder)
    -                    obj.append(alogger)
    -            i = name.rfind(".", 0, i - 1)
    -        if not rv:
    -            rv = self.root
    -        alogger.parent = rv
    -
    -    def _fixupChildren(self, ph, alogger):
    -        """
    -        Ensure that children of the placeholder ph are connected to the
    -        specified logger.
    -        """
    -        name = alogger.name
    -        namelen = len(name)
    -        for c in ph.loggerMap.keys():
    -            #The if means ... if not c.parent.name.startswith(nm)
    -            if c.parent.name[:namelen] != name:
    -                alogger.parent = c.parent
    -                c.parent = alogger
    -
    -    def _clear_cache(self):
    -        """
    -        Clear the cache for all loggers in loggerDict
    -        Called when level changes are made
    -        """
    -
    -        with _lock:
    -            for logger in self.loggerDict.values():
    -                if isinstance(logger, Logger):
    -                    logger._cache.clear()
    -            self.root._cache.clear()
    -
    -#---------------------------------------------------------------------------
    -#   Logger classes and functions
    -#---------------------------------------------------------------------------
    -
    -class Logger(Filterer):
    -    """
    -    Instances of the Logger class represent a single logging channel. A
    -    "logging channel" indicates an area of an application. Exactly how an
    -    "area" is defined is up to the application developer. Since an
    -    application can have any number of areas, logging channels are identified
    -    by a unique string. Application areas can be nested (e.g. an area
    -    of "input processing" might include sub-areas "read CSV files", "read
    -    XLS files" and "read Gnumeric files"). To cater for this natural nesting,
    -    channel names are organized into a namespace hierarchy where levels are
    -    separated by periods, much like the Java or Python package namespace. So
    -    in the instance given above, channel names might be "input" for the upper
    -    level, and "input.csv", "input.xls" and "input.gnu" for the sub-levels.
    -    There is no arbitrary limit to the depth of nesting.
    -    """
    -    def __init__(self, name, level=NOTSET):
    -        """
    -        Initialize the logger with a name and an optional level.
    -        """
    -        Filterer.__init__(self)
    -        self.name = name
    -        self.level = _checkLevel(level)
    -        self.parent = None
    -        self.propagate = True
    -        self.handlers = []
    -        self.disabled = False
    -        self._cache = {}
    -
    -    def setLevel(self, level):
    -        """
    -        Set the logging level of this logger.  level must be an int or a str.
    -        """
    -        self.level = _checkLevel(level)
    -        self.manager._clear_cache()
    -
    -    def debug(self, msg, *args, **kwargs):
    -        """
    -        Log 'msg % args' with severity 'DEBUG'.
    -
    -        To pass exception information, use the keyword argument exc_info with
    -        a true value, e.g.
    -
    -        logger.debug("Houston, we have a %s", "thorny problem", exc_info=True)
    -        """
    -        if self.isEnabledFor(DEBUG):
    -            self._log(DEBUG, msg, args, **kwargs)
    -
    -    def info(self, msg, *args, **kwargs):
    -        """
    -        Log 'msg % args' with severity 'INFO'.
    -
    -        To pass exception information, use the keyword argument exc_info with
    -        a true value, e.g.
    -
    -        logger.info("Houston, we have a %s", "notable problem", exc_info=True)
    -        """
    -        if self.isEnabledFor(INFO):
    -            self._log(INFO, msg, args, **kwargs)
    -
    -    def warning(self, msg, *args, **kwargs):
    -        """
    -        Log 'msg % args' with severity 'WARNING'.
    -
    -        To pass exception information, use the keyword argument exc_info with
    -        a true value, e.g.
    -
    -        logger.warning("Houston, we have a %s", "bit of a problem", exc_info=True)
    -        """
    -        if self.isEnabledFor(WARNING):
    -            self._log(WARNING, msg, args, **kwargs)
    -
    -    def warn(self, msg, *args, **kwargs):
    -        warnings.warn("The 'warn' method is deprecated, "
    -            "use 'warning' instead", DeprecationWarning, 2)
    -        self.warning(msg, *args, **kwargs)
    -
    -    def error(self, msg, *args, **kwargs):
    -        """
    -        Log 'msg % args' with severity 'ERROR'.
    -
    -        To pass exception information, use the keyword argument exc_info with
    -        a true value, e.g.
    -
    -        logger.error("Houston, we have a %s", "major problem", exc_info=True)
    -        """
    -        if self.isEnabledFor(ERROR):
    -            self._log(ERROR, msg, args, **kwargs)
    -
    -    def exception(self, msg, *args, exc_info=True, **kwargs):
    -        """
    -        Convenience method for logging an ERROR with exception information.
    -        """
    -        self.error(msg, *args, exc_info=exc_info, **kwargs)
    -
    -    def critical(self, msg, *args, **kwargs):
    -        """
    -        Log 'msg % args' with severity 'CRITICAL'.
    -
    -        To pass exception information, use the keyword argument exc_info with
    -        a true value, e.g.
    -
    -        logger.critical("Houston, we have a %s", "major disaster", exc_info=True)
    -        """
    -        if self.isEnabledFor(CRITICAL):
    -            self._log(CRITICAL, msg, args, **kwargs)
    -
    -    def fatal(self, msg, *args, **kwargs):
    -        """
    -        Don't use this method, use critical() instead.
    -        """
    -        self.critical(msg, *args, **kwargs)
    -
    -    def log(self, level, msg, *args, **kwargs):
    -        """
    -        Log 'msg % args' with the integer severity 'level'.
    -
    -        To pass exception information, use the keyword argument exc_info with
    -        a true value, e.g.
    -
    -        logger.log(level, "We have a %s", "mysterious problem", exc_info=True)
    -        """
    -        if not isinstance(level, int):
    -            if raiseExceptions:
    -                raise TypeError("level must be an integer")
    -            else:
    -                return
    -        if self.isEnabledFor(level):
    -            self._log(level, msg, args, **kwargs)
    -
    -    def findCaller(self, stack_info=False, stacklevel=1):
    -        """
    -        Find the stack frame of the caller so that we can note the source
    -        file name, line number and function name.
    -        """
    -        f = currentframe()
    -        #On some versions of IronPython, currentframe() returns None if
    -        #IronPython isn't run with -X:Frames.
    -        if f is None:
    -            return "(unknown file)", 0, "(unknown function)", None
    -        while stacklevel > 0:
    -            next_f = f.f_back
    -            if next_f is None:
    -                ## We've got options here.
    -                ## If we want to use the last (deepest) frame:
    -                break
    -                ## If we want to mimic the warnings module:
    -                #return ("sys", 1, "(unknown function)", None)
    -                ## If we want to be pedantic:
    -                #raise ValueError("call stack is not deep enough")
    -            f = next_f
    -            if not _is_internal_frame(f):
    -                stacklevel -= 1
    -        co = f.f_code
    -        sinfo = None
    -        if stack_info:
    -            with io.StringIO() as sio:
    -                sio.write("Stack (most recent call last):\n")
    -                traceback.print_stack(f, file=sio)
    -                sinfo = sio.getvalue()
    -                if sinfo[-1] == '\n':
    -                    sinfo = sinfo[:-1]
    -        return co.co_filename, f.f_lineno, co.co_name, sinfo
    -
    -    def makeRecord(self, name, level, fn, lno, msg, args, exc_info,
    -                   func=None, extra=None, sinfo=None):
    -        """
    -        A factory method which can be overridden in subclasses to create
    -        specialized LogRecords.
    -        """
    -        rv = _logRecordFactory(name, level, fn, lno, msg, args, exc_info, func,
    -                             sinfo)
    -        if extra is not None:
    -            for key in extra:
    -                if (key in ["message", "asctime"]) or (key in rv.__dict__):
    -                    raise KeyError("Attempt to overwrite %r in LogRecord" % key)
    -                rv.__dict__[key] = extra[key]
    -        return rv
    -
    -    def _log(self, level, msg, args, exc_info=None, extra=None, stack_info=False,
    -             stacklevel=1):
    -        """
    -        Low-level logging routine which creates a LogRecord and then calls
    -        all the handlers of this logger to handle the record.
    -        """
    -        sinfo = None
    -        if _srcfile:
    -            #IronPython doesn't track Python frames, so findCaller raises an
    -            #exception on some versions of IronPython. We trap it here so that
    -            #IronPython can use logging.
    -            try:
    -                fn, lno, func, sinfo = self.findCaller(stack_info, stacklevel)
    -            except ValueError: # pragma: no cover
    -                fn, lno, func = "(unknown file)", 0, "(unknown function)"
    -        else: # pragma: no cover
    -            fn, lno, func = "(unknown file)", 0, "(unknown function)"
    -        if exc_info:
    -            if isinstance(exc_info, BaseException):
    -                exc_info = (type(exc_info), exc_info, exc_info.__traceback__)
    -            elif not isinstance(exc_info, tuple):
    -                exc_info = sys.exc_info()
    -        record = self.makeRecord(self.name, level, fn, lno, msg, args,
    -                                 exc_info, func, extra, sinfo)
    -        self.handle(record)
    -
    -    def handle(self, record):
    -        """
    -        Call the handlers for the specified record.
    -
    -        This method is used for unpickled records received from a socket, as
    -        well as those created locally. Logger-level filtering is applied.
    -        """
    -        if self.disabled:
    -            return
    -        maybe_record = self.filter(record)
    -        if not maybe_record:
    -            return
    -        if isinstance(maybe_record, LogRecord):
    -            record = maybe_record
    -        self.callHandlers(record)
    -
    -    def addHandler(self, hdlr):
    -        """
    -        Add the specified handler to this logger.
    -        """
    -        with _lock:
    -            if not (hdlr in self.handlers):
    -                self.handlers.append(hdlr)
    -
    -    def removeHandler(self, hdlr):
    -        """
    -        Remove the specified handler from this logger.
    -        """
    -        with _lock:
    -            if hdlr in self.handlers:
    -                self.handlers.remove(hdlr)
    -
    -    def hasHandlers(self):
    -        """
    -        See if this logger has any handlers configured.
    -
    -        Loop through all handlers for this logger and its parents in the
    -        logger hierarchy. Return True if a handler was found, else False.
    -        Stop searching up the hierarchy whenever a logger with the "propagate"
    -        attribute set to zero is found - that will be the last logger which
    -        is checked for the existence of handlers.
    -        """
    -        c = self
    -        rv = False
    -        while c:
    -            if c.handlers:
    -                rv = True
    -                break
    -            if not c.propagate:
    -                break
    -            else:
    -                c = c.parent
    -        return rv
    -
    -    def callHandlers(self, record):
    -        """
    -        Pass a record to all relevant handlers.
    -
    -        Loop through all handlers for this logger and its parents in the
    -        logger hierarchy. If no handler was found, output a one-off error
    -        message to sys.stderr. Stop searching up the hierarchy whenever a
    -        logger with the "propagate" attribute set to zero is found - that
    -        will be the last logger whose handlers are called.
    -        """
    -        c = self
    -        found = 0
    -        while c:
    -            for hdlr in c.handlers:
    -                found = found + 1
    -                if record.levelno >= hdlr.level:
    -                    hdlr.handle(record)
    -            if not c.propagate:
    -                c = None    #break out
    -            else:
    -                c = c.parent
    -        if (found == 0):
    -            if lastResort:
    -                if record.levelno >= lastResort.level:
    -                    lastResort.handle(record)
    -            elif raiseExceptions and not self.manager.emittedNoHandlerWarning:
    -                sys.stderr.write("No handlers could be found for logger"
    -                                 " \"%s\"\n" % self.name)
    -                self.manager.emittedNoHandlerWarning = True
    -
    -    def getEffectiveLevel(self):
    -        """
    -        Get the effective level for this logger.
    -
    -        Loop through this logger and its parents in the logger hierarchy,
    -        looking for a non-zero logging level. Return the first one found.
    -        """
    -        logger = self
    -        while logger:
    -            if logger.level:
    -                return logger.level
    -            logger = logger.parent
    -        return NOTSET
    -
    -    def isEnabledFor(self, level):
    -        """
    -        Is this logger enabled for level 'level'?
    -        """
    -        if self.disabled:
    -            return False
    -
    -        try:
    -            return self._cache[level]
    -        except KeyError:
    -            with _lock:
    -                if self.manager.disable >= level:
    -                    is_enabled = self._cache[level] = False
    -                else:
    -                    is_enabled = self._cache[level] = (
    -                        level >= self.getEffectiveLevel()
    -                    )
    -            return is_enabled
    -
    -    def getChild(self, suffix):
    -        """
    -        Get a logger which is a descendant to this one.
    -
    -        This is a convenience method, such that
    -
    -        logging.getLogger('abc').getChild('def.ghi')
    -
    -        is the same as
    -
    -        logging.getLogger('abc.def.ghi')
    -
    -        It's useful, for example, when the parent logger is named using
    -        __name__ rather than a literal string.
    -        """
    -        if self.root is not self:
    -            suffix = '.'.join((self.name, suffix))
    -        return self.manager.getLogger(suffix)
    -
    -    def getChildren(self):
    -
    -        def _hierlevel(logger):
    -            if logger is logger.manager.root:
    -                return 0
    -            return 1 + logger.name.count('.')
    -
    -        d = self.manager.loggerDict
    -        with _lock:
    -            # exclude PlaceHolders - the last check is to ensure that lower-level
    -            # descendants aren't returned - if there are placeholders, a logger's
    -            # parent field might point to a grandparent or ancestor thereof.
    -            return set(item for item in d.values()
    -                       if isinstance(item, Logger) and item.parent is self and
    -                       _hierlevel(item) == 1 + _hierlevel(item.parent))
    -
    -    def __repr__(self):
    -        level = getLevelName(self.getEffectiveLevel())
    -        return '<%s %s (%s)>' % (self.__class__.__name__, self.name, level)
    -
    -    def __reduce__(self):
    -        if getLogger(self.name) is not self:
    -            import pickle
    -            raise pickle.PicklingError('logger cannot be pickled')
    -        return getLogger, (self.name,)
    -
    -
    -class RootLogger(Logger):
    -    """
    -    A root logger is not that different to any other logger, except that
    -    it must have a logging level and there is only one instance of it in
    -    the hierarchy.
    -    """
    -    def __init__(self, level):
    -        """
    -        Initialize the logger with the name "root".
    -        """
    -        Logger.__init__(self, "root", level)
    -
    -    def __reduce__(self):
    -        return getLogger, ()
    -
    -_loggerClass = Logger
    -
    -class LoggerAdapter(object):
    -    """
    -    An adapter for loggers which makes it easier to specify contextual
    -    information in logging output.
    -    """
    -
    -    def __init__(self, logger, extra=None, merge_extra=False):
    -        """
    -        Initialize the adapter with a logger and a dict-like object which
    -        provides contextual information. This constructor signature allows
    -        easy stacking of LoggerAdapters, if so desired.
    -
    -        You can effectively pass keyword arguments as shown in the
    -        following example:
    -
    -        adapter = LoggerAdapter(someLogger, dict(p1=v1, p2="v2"))
    -
    -        By default, LoggerAdapter objects will drop the "extra" argument
    -        passed on the individual log calls to use its own instead.
    -
    -        Initializing it with merge_extra=True will instead merge both
    -        maps when logging, the individual call extra taking precedence
    -        over the LoggerAdapter instance extra
    -
    -        .. versionchanged:: 3.13
    -           The *merge_extra* argument was added.
    -        """
    -        self.logger = logger
    -        self.extra = extra
    -        self.merge_extra = merge_extra
    -
    -    def process(self, msg, kwargs):
    -        """
    -        Process the logging message and keyword arguments passed in to
    -        a logging call to insert contextual information. You can either
    -        manipulate the message itself, the keyword args or both. Return
    -        the message and kwargs modified (or not) to suit your needs.
    -
    -        Normally, you'll only need to override this one method in a
    -        LoggerAdapter subclass for your specific needs.
    -        """
    -        if self.merge_extra and "extra" in kwargs:
    -            kwargs["extra"] = {**self.extra, **kwargs["extra"]}
    -        else:
    -            kwargs["extra"] = self.extra
    -        return msg, kwargs
    -
    -    #
    -    # Boilerplate convenience methods
    -    #
    -    def debug(self, msg, *args, **kwargs):
    -        """
    -        Delegate a debug call to the underlying logger.
    -        """
    -        self.log(DEBUG, msg, *args, **kwargs)
    -
    -    def info(self, msg, *args, **kwargs):
    -        """
    -        Delegate an info call to the underlying logger.
    -        """
    -        self.log(INFO, msg, *args, **kwargs)
    -
    -    def warning(self, msg, *args, **kwargs):
    -        """
    -        Delegate a warning call to the underlying logger.
    -        """
    -        self.log(WARNING, msg, *args, **kwargs)
    -
    -    def warn(self, msg, *args, **kwargs):
    -        warnings.warn("The 'warn' method is deprecated, "
    -            "use 'warning' instead", DeprecationWarning, 2)
    -        self.warning(msg, *args, **kwargs)
    -
    -    def error(self, msg, *args, **kwargs):
    -        """
    -        Delegate an error call to the underlying logger.
    -        """
    -        self.log(ERROR, msg, *args, **kwargs)
    -
    -    def exception(self, msg, *args, exc_info=True, **kwargs):
    -        """
    -        Delegate an exception call to the underlying logger.
    -        """
    -        self.log(ERROR, msg, *args, exc_info=exc_info, **kwargs)
    -
    -    def critical(self, msg, *args, **kwargs):
    -        """
    -        Delegate a critical call to the underlying logger.
    -        """
    -        self.log(CRITICAL, msg, *args, **kwargs)
    -
    -    def log(self, level, msg, *args, **kwargs):
    -        """
    -        Delegate a log call to the underlying logger, after adding
    -        contextual information from this adapter instance.
    -        """
    -        if self.isEnabledFor(level):
    -            msg, kwargs = self.process(msg, kwargs)
    -            self.logger.log(level, msg, *args, **kwargs)
    -
    -    def isEnabledFor(self, level):
    -        """
    -        Is this logger enabled for level 'level'?
    -        """
    -        return self.logger.isEnabledFor(level)
    -
    -    def setLevel(self, level):
    -        """
    -        Set the specified level on the underlying logger.
    -        """
    -        self.logger.setLevel(level)
    -
    -    def getEffectiveLevel(self):
    -        """
    -        Get the effective level for the underlying logger.
    -        """
    -        return self.logger.getEffectiveLevel()
    -
    -    def hasHandlers(self):
    -        """
    -        See if the underlying logger has any handlers.
    -        """
    -        return self.logger.hasHandlers()
    -
    -    def _log(self, level, msg, args, **kwargs):
    -        """
    -        Low-level log implementation, proxied to allow nested logger adapters.
    -        """
    -        return self.logger._log(level, msg, args, **kwargs)
    -
    -    @property
    -    def manager(self):
    -        return self.logger.manager
    -
    -    @manager.setter
    -    def manager(self, value):
    -        self.logger.manager = value
    -
    -    @property
    -    def name(self):
    -        return self.logger.name
    -
    -    def __repr__(self):
    -        logger = self.logger
    -        level = getLevelName(logger.getEffectiveLevel())
    -        return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
    -
    -    __class_getitem__ = classmethod(GenericAlias)
    -
    -root = RootLogger(WARNING)
    -Logger.root = root
    -Logger.manager = Manager(Logger.root)
    -
    -#---------------------------------------------------------------------------
    -# Configuration classes and functions
    -#---------------------------------------------------------------------------
    -
    -def basicConfig(**kwargs):
    -    """
    -    Do basic configuration for the logging system.
    -
    -    This function does nothing if the root logger already has handlers
    -    configured, unless the keyword argument *force* is set to ``True``.
    -    It is a convenience method intended for use by simple scripts
    -    to do one-shot configuration of the logging package.
    -
    -    The default behaviour is to create a StreamHandler which writes to
    -    sys.stderr, set a formatter using the BASIC_FORMAT format string, and
    -    add the handler to the root logger.
    -
    -    A number of optional keyword arguments may be specified, which can alter
    -    the default behaviour.
    -
    -    filename  Specifies that a FileHandler be created, using the specified
    -              filename, rather than a StreamHandler.
    -    filemode  Specifies the mode to open the file, if filename is specified
    -              (if filemode is unspecified, it defaults to 'a').
    -    format    Use the specified format string for the handler.
    -    datefmt   Use the specified date/time format.
    -    style     If a format string is specified, use this to specify the
    -              type of format string (possible values '%', '{', '$', for
    -              %-formatting, :meth:`str.format` and :class:`string.Template`
    -              - defaults to '%').
    -    level     Set the root logger level to the specified level.
    -    stream    Use the specified stream to initialize the StreamHandler. Note
    -              that this argument is incompatible with 'filename' - if both
    -              are present, 'stream' is ignored.
    -    handlers  If specified, this should be an iterable of already created
    -              handlers, which will be added to the root logger. Any handler
    -              in the list which does not have a formatter assigned will be
    -              assigned the formatter created in this function.
    -    force     If this keyword  is specified as true, any existing handlers
    -              attached to the root logger are removed and closed, before
    -              carrying out the configuration as specified by the other
    -              arguments.
    -    encoding  If specified together with a filename, this encoding is passed to
    -              the created FileHandler, causing it to be used when the file is
    -              opened.
    -    errors    If specified together with a filename, this value is passed to the
    -              created FileHandler, causing it to be used when the file is
    -              opened in text mode. If not specified, the default value is
    -              `backslashreplace`.
    -
    -    Note that you could specify a stream created using open(filename, mode)
    -    rather than passing the filename and mode in. However, it should be
    -    remembered that StreamHandler does not close its stream (since it may be
    -    using sys.stdout or sys.stderr), whereas FileHandler closes its stream
    -    when the handler is closed.
    -
    -    .. versionchanged:: 3.2
    -       Added the ``style`` parameter.
    -
    -    .. versionchanged:: 3.3
    -       Added the ``handlers`` parameter. A ``ValueError`` is now thrown for
    -       incompatible arguments (e.g. ``handlers`` specified together with
    -       ``filename``/``filemode``, or ``filename``/``filemode`` specified
    -       together with ``stream``, or ``handlers`` specified together with
    -       ``stream``.
    -
    -    .. versionchanged:: 3.8
    -       Added the ``force`` parameter.
    -
    -    .. versionchanged:: 3.9
    -       Added the ``encoding`` and ``errors`` parameters.
    -    """
    -    # Add thread safety in case someone mistakenly calls
    -    # basicConfig() from multiple threads
    -    with _lock:
    -        force = kwargs.pop('force', False)
    -        encoding = kwargs.pop('encoding', None)
    -        errors = kwargs.pop('errors', 'backslashreplace')
    -        if force:
    -            for h in root.handlers[:]:
    -                root.removeHandler(h)
    -                h.close()
    -        if len(root.handlers) == 0:
    -            handlers = kwargs.pop("handlers", None)
    -            if handlers is None:
    -                if "stream" in kwargs and "filename" in kwargs:
    -                    raise ValueError("'stream' and 'filename' should not be "
    -                                     "specified together")
    -            else:
    -                if "stream" in kwargs or "filename" in kwargs:
    -                    raise ValueError("'stream' or 'filename' should not be "
    -                                     "specified together with 'handlers'")
    -            if handlers is None:
    -                filename = kwargs.pop("filename", None)
    -                mode = kwargs.pop("filemode", 'a')
    -                if filename:
    -                    if 'b' in mode:
    -                        errors = None
    -                    else:
    -                        encoding = io.text_encoding(encoding)
    -                    h = FileHandler(filename, mode,
    -                                    encoding=encoding, errors=errors)
    -                else:
    -                    stream = kwargs.pop("stream", None)
    -                    h = StreamHandler(stream)
    -                handlers = [h]
    -            dfs = kwargs.pop("datefmt", None)
    -            style = kwargs.pop("style", '%')
    -            if style not in _STYLES:
    -                raise ValueError('Style must be one of: %s' % ','.join(
    -                                 _STYLES.keys()))
    -            fs = kwargs.pop("format", _STYLES[style][1])
    -            fmt = Formatter(fs, dfs, style)
    -            for h in handlers:
    -                if h.formatter is None:
    -                    h.setFormatter(fmt)
    -                root.addHandler(h)
    -            level = kwargs.pop("level", None)
    -            if level is not None:
    -                root.setLevel(level)
    -            if kwargs:
    -                keys = ', '.join(kwargs.keys())
    -                raise ValueError('Unrecognised argument(s): %s' % keys)
    -
    -#---------------------------------------------------------------------------
    -# Utility functions at module level.
    -# Basically delegate everything to the root logger.
    -#---------------------------------------------------------------------------
    -
    -def getLogger(name=None):
    -    """
    -    Return a logger with the specified name, creating it if necessary.
    -
    -    If no name is specified, return the root logger.
    -    """
    -    if not name or isinstance(name, str) and name == root.name:
    -        return root
    -    return Logger.manager.getLogger(name)
    -
    -def critical(msg, *args, **kwargs):
    -    """
    -    Log a message with severity 'CRITICAL' on the root logger. If the logger
    -    has no handlers, call basicConfig() to add a console handler with a
    -    pre-defined format.
    -    """
    -    if len(root.handlers) == 0:
    -        basicConfig()
    -    root.critical(msg, *args, **kwargs)
    -
    -def fatal(msg, *args, **kwargs):
    -    """
    -    Don't use this function, use critical() instead.
    -    """
    -    critical(msg, *args, **kwargs)
    -
    -def error(msg, *args, **kwargs):
    -    """
    -    Log a message with severity 'ERROR' on the root logger. If the logger has
    -    no handlers, call basicConfig() to add a console handler with a pre-defined
    -    format.
    -    """
    -    if len(root.handlers) == 0:
    -        basicConfig()
    -    root.error(msg, *args, **kwargs)
    -
    -def exception(msg, *args, exc_info=True, **kwargs):
    -    """
    -    Log a message with severity 'ERROR' on the root logger, with exception
    -    information. If the logger has no handlers, basicConfig() is called to add
    -    a console handler with a pre-defined format.
    -    """
    -    error(msg, *args, exc_info=exc_info, **kwargs)
    -
    -def warning(msg, *args, **kwargs):
    -    """
    -    Log a message with severity 'WARNING' on the root logger. If the logger has
    -    no handlers, call basicConfig() to add a console handler with a pre-defined
    -    format.
    -    """
    -    if len(root.handlers) == 0:
    -        basicConfig()
    -    root.warning(msg, *args, **kwargs)
    -
    -def warn(msg, *args, **kwargs):
    -    warnings.warn("The 'warn' function is deprecated, "
    -        "use 'warning' instead", DeprecationWarning, 2)
    -    warning(msg, *args, **kwargs)
    -
    -def info(msg, *args, **kwargs):
    -    """
    -    Log a message with severity 'INFO' on the root logger. If the logger has
    -    no handlers, call basicConfig() to add a console handler with a pre-defined
    -    format.
    -    """
    -    if len(root.handlers) == 0:
    -        basicConfig()
    -    root.info(msg, *args, **kwargs)
    -
    -def debug(msg, *args, **kwargs):
    -    """
    -    Log a message with severity 'DEBUG' on the root logger. If the logger has
    -    no handlers, call basicConfig() to add a console handler with a pre-defined
    -    format.
    -    """
    -    if len(root.handlers) == 0:
    -        basicConfig()
    -    root.debug(msg, *args, **kwargs)
    -
    -
    -[docs] -def log(level, msg, *args, **kwargs): - """ - Log 'msg % args' with the integer severity 'level' on the root logger. If - the logger has no handlers, call basicConfig() to add a console handler - with a pre-defined format. - """ - if len(root.handlers) == 0: - basicConfig() - root.log(level, msg, *args, **kwargs)
    - - -def disable(level=CRITICAL): - """ - Disable all logging calls of severity 'level' and below. - """ - root.manager.disable = level - root.manager._clear_cache() - -def shutdown(handlerList=_handlerList): - """ - Perform any cleanup actions in the logging system (e.g. flushing - buffers). - - Should be called at application exit. - """ - for wr in reversed(handlerList[:]): - #errors might occur, for example, if files are locked - #we just ignore them if raiseExceptions is not set - try: - h = wr() - if h: - try: - h.acquire() - # MemoryHandlers might not want to be flushed on close, - # but circular imports prevent us scoping this to just - # those handlers. hence the default to True. - if getattr(h, 'flushOnClose', True): - h.flush() - h.close() - except (OSError, ValueError): - # Ignore errors which might be caused - # because handlers have been closed but - # references to them are still around at - # application exit. - pass - finally: - h.release() - except: # ignore everything, as we're shutting down - if raiseExceptions: - raise - #else, swallow - -#Let's try and shutdown automatically on application exit... -import atexit -atexit.register(shutdown) - -# Null handler - -class NullHandler(Handler): - """ - This handler does nothing. It's intended to be used to avoid the - "No handlers could be found for logger XXX" one-off warning. This is - important for library code, which may contain code to log events. If a user - of the library does not configure logging, the one-off warning might be - produced; to avoid this, the library developer simply needs to instantiate - a NullHandler and add it to the top-level logger of the library module or - package. - """ - def handle(self, record): - """Stub.""" - - def emit(self, record): - """Stub.""" - - def createLock(self): - self.lock = None - - def _at_fork_reinit(self): - pass - -# Warnings integration - -_warnings_showwarning = None - -def _showwarning(message, category, filename, lineno, file=None, line=None): - """ - Implementation of showwarnings which redirects to logging, which will first - check to see if the file parameter is None. If a file is specified, it will - delegate to the original warnings implementation of showwarning. Otherwise, - it will call warnings.formatwarning and will log the resulting string to a - warnings logger named "py.warnings" with level logging.WARNING. - """ - if file is not None: - if _warnings_showwarning is not None: - _warnings_showwarning(message, category, filename, lineno, file, line) - else: - s = warnings.formatwarning(message, category, filename, lineno, line) - logger = getLogger("py.warnings") - if not logger.handlers: - logger.addHandler(NullHandler()) - # bpo-46557: Log str(s) as msg instead of logger.warning("%s", s) - # since some log aggregation tools group logs by the msg arg - logger.warning(str(s)) - -def captureWarnings(capture): - """ - If capture is true, redirect all warnings to the logging package. - If capture is False, ensure that warnings are not redirected to logging - but to their original destinations. - """ - global _warnings_showwarning - if capture: - if _warnings_showwarning is None: - _warnings_showwarning = warnings.showwarning - warnings.showwarning = _showwarning - else: - if _warnings_showwarning is not None: - warnings.showwarning = _warnings_showwarning - _warnings_showwarning = None -
    - -
    -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.data.dspy_data.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.data.dspy_data.rst.txt deleted file mode 100644 index 75d31db..0000000 --- a/graphdoc/docs/_build/html/_sources/graphdoc.data.dspy_data.rst.txt +++ /dev/null @@ -1,37 +0,0 @@ -graphdoc.data.dspy\_data package -================================ - -Submodules ----------- - -graphdoc.data.dspy\_data.dspy\_data\_helper module --------------------------------------------------- - -.. automodule:: graphdoc.data.dspy_data.dspy_data_helper - :members: - :undoc-members: - :show-inheritance: - -graphdoc.data.dspy\_data.generation\_data\_helper module --------------------------------------------------------- - -.. automodule:: graphdoc.data.dspy_data.generation_data_helper - :members: - :undoc-members: - :show-inheritance: - -graphdoc.data.dspy\_data.quality\_data\_helper module ------------------------------------------------------ - -.. automodule:: graphdoc.data.dspy_data.quality_data_helper - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc.data.dspy_data - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.data.mlflow_data.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.data.mlflow_data.rst.txt deleted file mode 100644 index 7505d93..0000000 --- a/graphdoc/docs/_build/html/_sources/graphdoc.data.mlflow_data.rst.txt +++ /dev/null @@ -1,21 +0,0 @@ -graphdoc.data.mlflow\_data package -================================== - -Submodules ----------- - -graphdoc.data.mlflow\_data.mlflow\_data\_helper module ------------------------------------------------------- - -.. automodule:: graphdoc.data.mlflow_data.mlflow_data_helper - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc.data.mlflow_data - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.data.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.data.rst.txt deleted file mode 100644 index 9f059b8..0000000 --- a/graphdoc/docs/_build/html/_sources/graphdoc.data.rst.txt +++ /dev/null @@ -1,54 +0,0 @@ -graphdoc.data package -===================== - -Subpackages ------------ - -.. toctree:: - :maxdepth: 4 - - graphdoc.data.dspy_data - graphdoc.data.mlflow_data - -Submodules ----------- - -graphdoc.data.helper module ---------------------------- - -.. automodule:: graphdoc.data.helper - :members: - :undoc-members: - :show-inheritance: - -graphdoc.data.local module --------------------------- - -.. automodule:: graphdoc.data.local - :members: - :undoc-members: - :show-inheritance: - -graphdoc.data.parser module ---------------------------- - -.. automodule:: graphdoc.data.parser - :members: - :undoc-members: - :show-inheritance: - -graphdoc.data.schema module ---------------------------- - -.. automodule:: graphdoc.data.schema - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc.data - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.eval.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.eval.rst.txt deleted file mode 100644 index 8b095e3..0000000 --- a/graphdoc/docs/_build/html/_sources/graphdoc.eval.rst.txt +++ /dev/null @@ -1,21 +0,0 @@ -graphdoc.eval package -===================== - -Submodules ----------- - -graphdoc.eval.doc\_generator\_eval module ------------------------------------------ - -.. automodule:: graphdoc.eval.doc_generator_eval - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc.eval - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.modules.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.modules.rst.txt deleted file mode 100644 index b8bfd19..0000000 --- a/graphdoc/docs/_build/html/_sources/graphdoc.modules.rst.txt +++ /dev/null @@ -1,21 +0,0 @@ -graphdoc.modules package -======================== - -Submodules ----------- - -graphdoc.modules.doc\_generator\_module module ----------------------------------------------- - -.. automodule:: graphdoc.modules.doc_generator_module - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc.modules - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.prompts.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.prompts.rst.txt deleted file mode 100644 index cf530c9..0000000 --- a/graphdoc/docs/_build/html/_sources/graphdoc.prompts.rst.txt +++ /dev/null @@ -1,37 +0,0 @@ -graphdoc.prompts package -======================== - -Submodules ----------- - -graphdoc.prompts.schema\_doc\_generation module ------------------------------------------------ - -.. automodule:: graphdoc.prompts.schema_doc_generation - :members: - :undoc-members: - :show-inheritance: - -graphdoc.prompts.schema\_doc\_quality module --------------------------------------------- - -.. automodule:: graphdoc.prompts.schema_doc_quality - :members: - :undoc-members: - :show-inheritance: - -graphdoc.prompts.single\_prompt module --------------------------------------- - -.. automodule:: graphdoc.prompts.single_prompt - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc.prompts - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.rst.txt deleted file mode 100644 index 502daff..0000000 --- a/graphdoc/docs/_build/html/_sources/graphdoc.rst.txt +++ /dev/null @@ -1,41 +0,0 @@ -graphdoc package -================ - -Subpackages ------------ - -.. toctree:: - :maxdepth: 4 - - graphdoc.data - graphdoc.eval - graphdoc.modules - graphdoc.prompts - graphdoc.train - -Submodules ----------- - -graphdoc.config module ----------------------- - -.. automodule:: graphdoc.config - :members: - :undoc-members: - :show-inheritance: - -graphdoc.main module --------------------- - -.. automodule:: graphdoc.main - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/graphdoc.train.rst.txt b/graphdoc/docs/_build/html/_sources/graphdoc.train.rst.txt deleted file mode 100644 index d6d3f32..0000000 --- a/graphdoc/docs/_build/html/_sources/graphdoc.train.rst.txt +++ /dev/null @@ -1,45 +0,0 @@ -graphdoc.train package -====================== - -Submodules ----------- - -graphdoc.train.doc\_generator\_trainer module ---------------------------------------------- - -.. automodule:: graphdoc.train.doc_generator_trainer - :members: - :undoc-members: - :show-inheritance: - -graphdoc.train.doc\_quality\_trainer module -------------------------------------------- - -.. automodule:: graphdoc.train.doc_quality_trainer - :members: - :undoc-members: - :show-inheritance: - -graphdoc.train.optimizers module --------------------------------- - -.. automodule:: graphdoc.train.optimizers - :members: - :undoc-members: - :show-inheritance: - -graphdoc.train.single\_prompt\_trainer module ---------------------------------------------- - -.. automodule:: graphdoc.train.single_prompt_trainer - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc.train - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/index.rst.txt b/graphdoc/docs/_build/html/_sources/index.rst.txt deleted file mode 100644 index 3db22af..0000000 --- a/graphdoc/docs/_build/html/_sources/index.rst.txt +++ /dev/null @@ -1,32 +0,0 @@ -.. GraphDoc documentation master file, created by - sphinx-quickstart on Thu Feb 20 19:14:02 2025. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -GraphDoc documentation -====================== - -.. include:: links.rst - -`GraphDoc` is a tool for generating GraphQL documentation given a GraphQL schema. It is coupled with tooling for interacting with -`MLflow `_ for tracking and logging. At the root of the `graphdoc `_ directory, -you will find a `mlflow-manager `_ directory that can help you setup and manage a local MLflow server. Within the `graphdoc` directory, you will -find a `run.sh `_ script that can help you get started with a majority of common workflows that you may want to run. Just reach open an issue, or -submit a PR, if you have any questions or feedback. Thanks! - -License: `Apache License 2.0 `_ - - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - modules - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/graphdoc/docs/_build/html/_sources/links.rst.txt b/graphdoc/docs/_build/html/_sources/links.rst.txt deleted file mode 100644 index e796213..0000000 --- a/graphdoc/docs/_build/html/_sources/links.rst.txt +++ /dev/null @@ -1,5 +0,0 @@ -.. _mlflow: https://mlflow.org/ -.. _graphdoc_repo: https://github.com/semiotic-ai/graphdoc -.. _mlflow_manager: https://github.com/semiotic-ai/graphdoc/tree/main/mlflow-manager -.. _run_script: https://github.com/semiotic-ai/graphdoc/blob/main/run.sh -.. _Apache License 2.0: https://www.apache.org/licenses/LICENSE-2.0 \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_sources/modules.rst.txt b/graphdoc/docs/_build/html/_sources/modules.rst.txt deleted file mode 100644 index 06251c7..0000000 --- a/graphdoc/docs/_build/html/_sources/modules.rst.txt +++ /dev/null @@ -1,7 +0,0 @@ -graphdoc -======== - -.. toctree:: - :maxdepth: 4 - - graphdoc diff --git a/graphdoc/docs/_build/html/_sources/source/graphdoc.data.rst.txt b/graphdoc/docs/_build/html/_sources/source/graphdoc.data.rst.txt deleted file mode 100644 index 9d5cba5..0000000 --- a/graphdoc/docs/_build/html/_sources/source/graphdoc.data.rst.txt +++ /dev/null @@ -1,45 +0,0 @@ -graphdoc.data package -===================== - -Submodules ----------- - -graphdoc.data.helper module ---------------------------- - -.. automodule:: graphdoc.data.helper - :members: - :undoc-members: - :show-inheritance: - -graphdoc.data.local module --------------------------- - -.. automodule:: graphdoc.data.local - :members: - :undoc-members: - :show-inheritance: - -graphdoc.data.parser module ---------------------------- - -.. automodule:: graphdoc.data.parser - :members: - :undoc-members: - :show-inheritance: - -graphdoc.data.schema module ---------------------------- - -.. automodule:: graphdoc.data.schema - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc.data - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/source/graphdoc.prompts.rst.txt b/graphdoc/docs/_build/html/_sources/source/graphdoc.prompts.rst.txt deleted file mode 100644 index cf530c9..0000000 --- a/graphdoc/docs/_build/html/_sources/source/graphdoc.prompts.rst.txt +++ /dev/null @@ -1,37 +0,0 @@ -graphdoc.prompts package -======================== - -Submodules ----------- - -graphdoc.prompts.schema\_doc\_generation module ------------------------------------------------ - -.. automodule:: graphdoc.prompts.schema_doc_generation - :members: - :undoc-members: - :show-inheritance: - -graphdoc.prompts.schema\_doc\_quality module --------------------------------------------- - -.. automodule:: graphdoc.prompts.schema_doc_quality - :members: - :undoc-members: - :show-inheritance: - -graphdoc.prompts.single\_prompt module --------------------------------------- - -.. automodule:: graphdoc.prompts.single_prompt - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc.prompts - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/source/graphdoc.rst.txt b/graphdoc/docs/_build/html/_sources/source/graphdoc.rst.txt deleted file mode 100644 index aae48c1..0000000 --- a/graphdoc/docs/_build/html/_sources/source/graphdoc.rst.txt +++ /dev/null @@ -1,30 +0,0 @@ -graphdoc package -================ - -Subpackages ------------ - -.. toctree:: - :maxdepth: 4 - - graphdoc.data - graphdoc.prompts - -Submodules ----------- - -graphdoc.main module --------------------- - -.. automodule:: graphdoc.main - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: graphdoc - :members: - :undoc-members: - :show-inheritance: diff --git a/graphdoc/docs/_build/html/_sources/source/modules.rst.txt b/graphdoc/docs/_build/html/_sources/source/modules.rst.txt deleted file mode 100644 index 06251c7..0000000 --- a/graphdoc/docs/_build/html/_sources/source/modules.rst.txt +++ /dev/null @@ -1,7 +0,0 @@ -graphdoc -======== - -.. toctree:: - :maxdepth: 4 - - graphdoc diff --git a/graphdoc/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js b/graphdoc/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js deleted file mode 100644 index 8141580..0000000 --- a/graphdoc/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +++ /dev/null @@ -1,123 +0,0 @@ -/* Compatability shim for jQuery and underscores.js. - * - * Copyright Sphinx contributors - * Released under the two clause BSD licence - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x - } - return decodeURIComponent(x.replace(/\+/g, ' ')); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} diff --git a/graphdoc/docs/_build/html/_static/basic.css b/graphdoc/docs/_build/html/_static/basic.css deleted file mode 100644 index f316efc..0000000 --- a/graphdoc/docs/_build/html/_static/basic.css +++ /dev/null @@ -1,925 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a:visited { - color: #551A8B; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -.translated { - background-color: rgba(207, 255, 207, 0.2) -} - -.untranslated { - background-color: rgba(255, 207, 207, 0.2) -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_static/css/badge_only.css b/graphdoc/docs/_build/html/_static/css/badge_only.css deleted file mode 100644 index c718cee..0000000 --- a/graphdoc/docs/_build/html/_static/css/badge_only.css +++ /dev/null @@ -1 +0,0 @@ -.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/graphdoc/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff b/graphdoc/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff deleted file mode 100644 index 6cb60000181dbd348963953ac8ac54afb46c63d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87624 zcmaI71zemx*C#x!Tp zndIaoGr4k-bN9U&_Lhd8SbF`U&{aS5&tGC24eIF6>x)sAOb&v zfVhIZGKkgz05Gxu09p-Ln#TZfWmRDSfawxMKLh|EoVkQZ`Q(-Vma{B@>M4POeg`;B zkdcjnJpjN;2LM2A0syd<0h`_}My}4p000*vh=&mrIB6Qd!%gkYY(O+#0043i0Dy~+ zMDP?cGjIac*g%2((WW-Z z97F_wef;$GNYK zfxA5bOcYe@pSr|Q_wavg4Qxz6G!PGXCa5nlCp;7+_I6Ir05EaTdqH{!{e&2vHVd-7 zqY0?4Du@P%1cew_u&6xu6(fCPef=#1e*gtEa_Fq!$Vh2VDfAaI9A$rFawGD%3Zn{` zgy^VfK}VWhXJU_#D|iSpz)(AE6ae79l9T`z{7Dgec+=K{^=9K?!wUkQ%eaTrpjIC> zLC8Nb@pFsd7ck_Sk!=816dlWeVYWSNRMZzZ%}6%bZDUA)+~NZV;g9^cr|GFKyZe`} zidYTZm7dU!k6>K<5q`*>Dao$Y2>XfSh@4lX_chMROUufP07Bu;w~|>J@*~h z8aP=_3{}bwwX%57OdFGJj?3eh?_+r|_=znRWSa|kViSC$RK)Ok@HyQrquqh1QhUm2 zD#axlDzU|}+qJuj4PN`wdW1Q8w#UyVncX4X1;k;KqNy&nG-avs3m&sQqsS_7#K?e| z)9F;OQ!VEQ%1Qf(Y|eN+2lxU}?rMDt1nhIO>18ni9TBcQ4`8!U*6eXw%5OuafEU=M zwS%l$`22YQyA8YF*h3ZaT_6lZIAm*v7dFfhg1$5=H^f)z%E@iat(7w-QOoT{3(4)~ z>cHV9nMzvk=|x;0r~8FU5u%2{?xjU`UU^#WHgM&BANT1*`K1sX!83!8KiG*V82yx5 zBx8pm+K>F!(2D-b6Co81jUK2|S8E@zTp#2Ufm(hT5V@_Z#HZsaf1oaKyOv{%w0H5_ zF}kq>VThTK0kHmIOHDSb|MS6asI}pF(lz)h3>i=(L~5xZ5%ZO4hJ>e&6bqi1`$qxf zPTr?6Vz4nNi~<%Q37jRQ@=rM?^5Z;yB?B2Iqyy+#Lx?6~f+hnP79({gynD#{T|p)o zE{8-e&8OK-0s?8KfNj9tEK4B8RC$x-Zs2hl zAp%2Vnc`G2)ij&Z?P;4h& z%<3zlRmIRw#E=zlj%7Z@PCA7ZOO6$=cqgRTid)aJ*mNh^)QV8gDgbk<6Vn2X|4&Ik zY*WE@yAd}X`%_M8*u61)~Lr`Cu}mS*kN&o^z+?JT)oEtJwN%`de{ zVV>CI9!cW0fy3_Tw4QBdHKB)(uvSlLu?{uzk2GPAejn44UHjTur#xN#)V|xzS;r{v zJ#o#?|rTB2Nzj~0wg0)B;Y#eq$=S|I=H05;jlVrq)OouufyhCVv;G4ikyye zt9q-1t4$@If8|ZvNPa&3zQx9AskF&!-ihX(=c0qn&$u%+orBbFAUaBYypyzpbOL_c z*PY#7AjL9BvkGHSftjR&+ZpD8JnlJ%7|jvtVNhYUmpHpEvYE-CD(rE+XuXd|Z6hJS zvLj?n&L%}=GSS(ko?AI{$pWil$->0!=c5EonyH#sgUWN`B;tY^#&}h{imd_c1B(QD zL$vZnQa1XCB`RWbX7Y;dLZFM`?oO-fi%eE<8YCS1DAQN>V61MQONDas4iiV=ysO`y zPFV|%GlZ;SC>gCNUrg>lX8F zy_yfLhE{;u%TviO#PqKJrbQVu4`B*EUA6-0De%WuSFgR)+}qiuLfrYt)hnrA~eu9CPLJY7CI>6paS zWnopw;$U)dp^e}K+3}Y&a@*xhfM}R|{p`3LBacr-0@@jdb$DYK?&I$w^NSzRrP_ObwH`u$VHUzG=(mgYH-8BkFliqhRIf0BGd z#SQg;0fKNb#@807bm?Drgy!lpM{LR48+WFs5(5dCRWWRk+F6%u!UC!_e|G-NAr_e& zkhjKs_ucr>s~%Vl?bq@7jQ0$36KTUBuL?@_DYrCJsOXJ$Y<%D<#UD9hAiKhziB?l{ z+@3`ziu0ITPg|%c2ncA@g=VtiSPCbJ6n%WEhX-?xw^!rQv@vT8nwRq?U+&teVHix6 z?zsBZFV{XuCaJAy)0DX&{jBMtI-uo7(#+pMpP{GQ%-HqM&}N zunOPt%jUEFRew`XR|b8$R#@!TW*RD)Lmyx8k9~^#iXhmW%OvI9{o5gwvKwbxO-Pr9 zrHL8uC0;lh1-W>*+wP)oZXv-n8PSUr9c@>~L*?3tB`{h`R5jcBC;`!sC*ay}P3YF- zOHx+}f^xY%^qt^rl;*2M-0sVu0O`#xK|d|V2Qchx2z-oqKg=uf{9PTB-=1CMHOX}w z5ik+PI%J9ATOLj_NS9a6sqdVXRmc$`@|{FPde3Ld@i=>DCcZ9vU4_8Pt@60L=3{Ddonu+Kt8=A&#Vn{1Ypkd|)aXDP#76Yobb7n%}Flnxrd9qH4- zWI~QjPwDfrhjA9no=4E%bL6QaE@56ZdTHg}5v+wEZ3?%SxQv=RuOi0^w~E>&huyhO z<&aJvb9)GNqf>5R2$CP~*2xmZXFtOc67KBLCroJ-^HXR(Q@yh1Ym~M$BF}dXymZb; zk>B~hz{vA7M=mt7RyFZ=*!h6O412ly#z@538Xo1Q%QXY_ zis@n>*p35+Jl|D=G8Wpv4CII7V^V(+HiL=1WJu)d#D2=;A^ULM(34*W-VzRN^APY1 zkhD6f&96yS+dXkE;QJKLjtK>wH@ItlmA*cE0+Tn$X1zfoxOK#8Y4e!KSQ016l1FTS_y;IU~ zH0H@KQe66>d{J0yJF!U30V2p|jjwpP~RQcZ^;^$KDSF(j~Z6 zm9$oU#i>!atd#+3?Gb6T65}nLkV@-?ZE6^KF87fk5twD`FPTW)uDAlX;VGsO6izN0 z^Zi9Jr}G(4_W~ix1M(=E*;L`Y@`9b|Z2{J5;X$4yw4?MBL<>5=7ipHZ#He$Bqkw_h z>4)%&V#x$ZWi(mi=BQKlg!ONdCONiu3p90^w&(fiDJNQ-2N{i*E`OJRb7xXANuFPP zVjbTG#N|@OJ2&oQu6BsxlSt>6I9Z#v zu$#o3+v4i?$vn9P%7?nx1O>)%-!huKh1e5ei4WyQ{69$o*73?hEi4^L|PM6o3OZtv{obc z&^9FkXsSNueb?fEWGBaqZYg-?9Qn2HM|E(mEA%4SDm-WRD+CQ*>BTHu_sCe zEtvvN11~9xQ;IPTSwyAbnKP=K5s6$OK;z-+S*|Q88@U2xmolu#**gnC5nKlfGY9rV zdxpco&ZC=Fe*_EMZh4N~d?JoQ#(VzBeWE?`x)AH5mQ+t&+GVY#cpDR*Wj)tIR^67U z@gpgY)%J11x{_0J&>yI)?jUKBh@B%W@(Jru-XOn7F{-F=h%yW0k~4%?PM?xFNV_3@ zQBO0A%1qcBMv_GG(4vz&9`2MBS?2W3&B|N<#-pA?r2R$qY_ZR`(%eS0Df&C*ne~Mr zCAXI>*0SuqQO#R*?R4Wkk>x9HdeV}K4-Zj$_{=(WXD)GN$W#jAL$20vwPD&q*& zK6rc#Y2OZv}J>(0U_y@);yb6iiTJo;V=z!?!ju|Jm2_o zeZI|odXun6**3LT8a}ZYBi?#LNzbO*)~oWrGO0CemvCPDZ z1(^{WXJFJ+&azKH<)Mk2kSY^ zs_$-lh>7D>*`2%tSFhX~ToY9-EVe&G0ec~2T10UPwF?%n|KQT*k>M1Ur@yL($D8Or z)F&&Q#7w$_DuBlT{iTg?5>b6 zYI7KuM$~c#OI*9xvk7l^EQ^^VO}s~>Vp=v4zEY&#-xi|;?RGi;Uw&cd&HLDA)S{sP zLl=9j5^2bH^Z0$FOIYKAE;p%JVi&ebtG%nIoo|6Y?R;51!W5 z4I~R;7{UWIc#X+n?>@7NeJA#h*Ynkmm!{kFtik21{?@1+x$~ISgwU^f5GXgWP!$J8 z{M)Px*Ib#q><@;GJ4AEY*9kVy>MKsQ*YWO{TclTJc(4wN8)>!f7IE>_Yv%VIyuKyAL;H1Rq5w!h1 zZ3dp0Cd~Z8wS`U4=kabMC9TDrQ8r;rZ8iB5-o;#yOs)j(4EtM1y2|z!xr0x@nFO_l zJc9Kv{y7B*P}H^thk@Ac1kxpe%J z?z4G+@&$3N#InXh@s5(_Y-?iP@G{mVb#9muk>f`e)PcufO+CCAn~ZE{Ev->nohPzA zlx4J+d{4(6Tz^d`8ycfJq#EX&LaFt5Ce3hy`&{dh@GGeoG^PiaoHrUhiF7+SIVQ~0 zH>A>&yH#=faF(iV9xT895kg+G`^8ri?7pvWniK3zG7KE|c{-ysM&i7YaB~j>HMJ8( ze4R)A`qw+1W!|Bzf$>**n{P1x(GhyQas0UmEpf$HIL07TCx{)F&2+-ZVT_ zbJ&9`s^g||GWesGPnS(}}GYKk(r;UoZ) z6}B*CNMKeQ!>V>1^_kNMYD%T7US;bviJKM*_+9+&q|}#SzPjMqMWs!pNLuyZNU#V& zr9x#;O7*`*f{jwD<^Mz~$?z(rf+3(N27X>Kj~l4`lLiW?@Dm;sZDAxoe=FiwER$C` z{$I&0jL(nXpnBU7bLy{~-PF{dihLS7rkY4z?-{IG-#0fb=IXmH;zbHxkdNjUUgMpWGnm6Db@C4DYp!#4C1!9gGMp3NT0*>ixyB&R zBxMYWeQVdI!F;)%Ro|}{f`JXuqP|wL4sR=XI^7eNshR|^B72VTHjJc3FKW5BCy&{h zgqL2{Khn>yGb^a(19;`vZg8ex#fI3D7dg~FoLPqk@^3kZSXUqMjjCKEi8JvJ^O~$r zfu4C|O);X9ct+WGAAh_GGEc3%1dfh;S^NXm@JqflV~^LOT`i-$38<-)I@c6fQ!|L7jN(7}5EZUu~;6m0s| zrqi%14?Y3i18989elP}u(YTUBcw`E%E)Lcyd||y`&hJze?Y>9!iamRw-X<=>&yOm= z-wlQ@DZ^q^xOysESRvT^Tt}%s#A5bSlO}gNO5fP}0I?%(O7+U%pOrD%9{)45wtwNHWt9ByY zo#Zu}_4iV``Kb(@Jw=s0MVBiDCJ)AHe=_0#2>gu;zkG_XjolPWw(^XnH_Ur31cU_kp_LQ2fz5B%l*`Fo_a{Vnln~e>#6}#BP93D9^)@Yw zs_(KRF#8{kXQ0k?VWdZOhZ(ok;@p?LW?r`WB-t;yUPuy?5@^R9xW+zwEeoz3d z7Qf&*q3C8uyY&O+I}-wQO8P`JrdFRrny_lcy#&bd3zI~W9FmN(!Z(X%T22(7+>|RD zc}8fBryq5>Q;W}IGMHs}{tl0fHwRzL)dcfPo9Tu|Q_Ka$StHMk=7)S8?Rvutv&4&- z?eD3>4@-f8e?-0QA5lj>0lnd<=^LeaPK`exYra?Nywd@yzl|yr5%c|Cz4gGl&=Hg!_dL#Oj(iKoa^q7eX z11JO35!+{3*s)a|FVz})_8NO$wRx+oeV3~2W?T4PMq{eNZ1k3_;YYskJ>u@6Q_8gB zANpPM>R-k)wck-cOjVpy@0y36X&c|Wn%}$Bx1;{asUAg1nW=Cay`3Q&^>gK*W|er# zT1e8qqBO8xRv!Cdh@HrT6z*v|$aqGu`Ci^B*Dm1|c}tImJmUCKoe9rXMswZ=9ObUd zsfDgXE13;W8Cn@dzLt7Hn&BrM|BpUXX{iVHNoGw@s}!Y}m1BiuIXf}r71jRl769|r z>OZpfGGP*b1%H8|%IMCX8JtxZ>e}RLlX2Yq%TDy<(Pn0GN#AJkc(cMUvm={#w;*bB z)clP(s-HuWW!~41nLm?@cZwJD@=K(9sF~)(O~;6mnrE!4_W&+`QJl-C+5p7Nr9Qoz zC2_bZ*?kV>kk@ivwC>3DO^!f#`=^%K}HM`PYgIBz{T zbh0iz^YfaVr5Qy>AmG#VuG8%TzP!h2XycLB-mtJ>hWFO>%rT6T0I~%>zz7?CNE6fZ zzI)u&`w)>Qd7UxWBdh4GPh7pl5wvRzZ-x{%6n;Jr7k2af6cF%IQfB&RVWt@D~I23E1I$WZhcfCB}R>nOS&Es=nE5-K9_M6eF zT&nEIye;MG_{Ob4+`ImhTdnl5t5oSFpH4_3XS#B!6yGN2zj)AeEuBBIo-53Wi}74C zcN$7ZVzz~PJt}2mSE<^9Tzj0ouF@LRPKN7M_`wT*M&lsm1pq8WMDeJAh z(*GM=yIldV)+JXTkKG$~jDG#*OCyjN;#jFeDUd4a*tuvI_kAR4jf!J*vdJ!9`>y-? zse7BJsXlT2G;fLb!O0)~h7T=w%2NOA`$Z=2ONkXFfk@>qNe1S7^pKU4C{;byeaxoN z<7Br*7;DCd$xQg=GD{7cvJ~g7F$G$e0S%me{C(`mmEB2r_@ z-V!O}rU|&lgq3UIZt_gr@(wlJ6Iz&)O}ZOwTkE8EkX86r`bNo;KCCjXN}X=-$~e(9 zjZbJsh~S+cA6lB~Odi$ymkLx%lYM*3ktvqLU%bYH zYYNFt4tY|C!0QBsQr!W05G+<%Gsju%-bEglutKx9`4ter*<0VTb3(|c=6Ruu=u-!7wkn7h8 z7c8(wqt^NsS}5_uy_Bi7#2!v`aNIJEkXhGr{x&{LVA@6oXPk)fFTYXKY9jly&)p4n z)f*sog*|?B;@1a4{jMJCM*L|(uwykJrkg30BPZKA+YP}s9qXp)LHUGdrsf6HiH&LJ zScTgw?}=eO1N-0HWW^+>E$gn0X~!g@`WtV%jcGFt&J@I}uUh$pWtisY%u#k$O%sap z3FENzPhrodiWRP5lle=C_|eF<8a~J+!z2Gp&NX*VIAi6^g^kAQ38R1EuGumn102N8 zf;~AzD+wW@-8kPTtBchCrctz&Ewr4V_;weZ8Tv=eILUSv3K`ChMu>KM_dseRs3jh4 zh;Z+(%5XM4CQ32EUyO0EQllZ905Vu5oISp~Q86H>wlbuIkkG}Nls)ean*3{OJAe*L zHQR8UbY}5p(`|1H{B%-4BhmclkTpP3CNJ#`-#)5B;hcIU$R zMVs)BsQ=Rk`mLODM}2U~##|63KF`iGZ%_s1mVy4leD(Z2@h$C2{6 zqMjF}+wgp{d?Vf%MZ@elG0!LiV$pROTepwlTaC}qnE0OGzJ*J`o7xR??j?@ZQ`RQ` z=tjkbg{%9-Qz;J6F+{KV(f5xWis$wRU;q5|;$hng2t_--C0`4!mCjt0fS0u>Ha5TA zTB{5E3wTEn*p&Yo3}hmc&P`JL_B4%L(cE)Idfo!MxzJw=(LRPg`rn_|9t^9WAn04> zx+*QCy|`!68FYsBor`$*j%2_4-uSf%2tfFDUw^pL=7LF=_uzPg(jGjcV~0K0-*X@q zWk7b5Rersd_I|zoUx2|AwK>T53|c%;yt-?z(Vkw+`Yv8VSJNgMKQJcDNaU}+e)I@j z<1^L-r@Akn{4W51MfA3L>$%#kPnLPtJhsUzet*`+oOOL;HxyKsw8^ea;LubNN9nzo zWvR_!1^nV%0@K-&VKHHdLsXXlk*CHJ3;2=DCCC_x z{txVgC!H{BE>79Tl%$O_#J4v57G(mo%Jz6kYD`Go|Nnp@sgOm_u40--o#d*>i!c(p zlC_e$zFAp|A^c=p8MC(EvDzblVRoO&g%;i473~e9c5kud0){rXi?Kvw^<$z$>2(t0 zag*0Y;L(oP#m!{fO@94Om)7rNZ+%(L!ID?!$tDL*l`npj?5~MbSc3nC<4-A^{84>r zLsiV{yY;w9LFOJ;_RPBPK+_;UfYR~NoV*y5Z%p&q-B!n=Av&gsIa&NK?2+(ee8cJK z@jIBn)!%{-{4>{N6V@1*p=guoa9sMsDpTm6Q|zV1)P7^X4?;?h4^!6`r$`7JrDAz` zzfn#`GZ$)VQPD3j=er2UyReq%hI;y_#TggaeKCWw?m}5#a*jt1u^G6`Psn)DEDcS) zO4n$2Xbc8-==65bD28-jj3oVg{7~qaIW}JCvwTaKq47Y#aYBw6aC*p!H>9|#Br&AV zR=zoLhRD~QuE$aRZ(rhSc@D7YNfc{V#z`ENUP^-jPEX#fN4jPFjQMZ2YrUGR z1MPj6pJjK$JBW)1$;F_6PpkYENRf)e^y03{l0kRagIX zeubVE=Zo`?#?$$`xI|*`jCGx8HwY_7DqJYBgYAT;@x{9wSfb=r8Q!=;SRRb~N8p;} zKEDSogq717k++(ycA#drrgsT8rc{ictlGKAmMD3L>-=fDB<{SPdKDReJ1dmoo(f52 z0dT?nWKuFq`6&2{WDDACpGUq&dqPXd;e<{_#k>nXlIidd^O9nZthovvG%H2?iKxT( z?6AbD_Q)mR%!ps`8pMbm7$9WZ>EdF$`L7rpn%Y@3oiPn8H^nn&8jRGtaXV>Ugq5#F zG#@@hf7mPyg!}10d71XbYZ61E)qMM!K%xsaMJ0sOq0n1M+auo=D4?au#QiG*)wux6 zAg;=vU@4jk-@t*hcgG=y{14K>HyxAFmR==$1h@DfFLW3vnwW(3*1RTM?o*Ce3H#e@ zAe!V&O;=%1y?X_6#Ws8UN6$QAR{@`ba%g?RpeC;P1*#Ws|uD=b_R9Bc~@ zxABJ=VuEfW&bLPIx!3dvX0?#WI@PyEcnVxmgXXOao*wTFYopu*<;N-@TeM$@j}bQ;K2hj0MOP`2v_ zoCcEDA*75kXppq)7o7&GGDRzCu=p)8`z_T2IO_nxED#10=-U(EXcO?i!vi8T7El}} zkgqCG(Boh+BqzW}D;Q_e*;q6LjO*S<3}Z%2??()fM@;0X3>c_PY^jW@O7+i6O$k9e zeSVo~lo{!n>|4>u2SIWNA+`sRga;vd2PLX41~B!#45oQD?iP52E1{W9Xr(r3E1`V0 z%oxq-1m{c`Zt3+4hL-fj3+Sbdke2jKT9MTYJH?HV+ZYIaW(UQSkQS^$I+1w1NN)WE zZ%8N%!;#|=JFLIOzFJ3NSBINza8wt{TpesBImFe( z#+!xT=Wq)@&I+!dc%}JeYGBI6dexOgOZ4<~XITsr*Yz!=dTPmRO@e|DeL5VLLP(4* zKw}I(Y1V+L)bO)%sZoZ-Tv$}X*UaT8MD3*jI-cbqaIfVsd>GCx{xHrx?mo0d#Te32 z=9s)3IaX$Q`@T~djGIp-6LRd#)AmEB-WVg|kG!M|_Fxtaj=wtw$ZuFuCuwzuDrI79zZY#UZ>| z^6ta9p_ZRC9_uTT3!qb}F<{}lTQzFf~9F|^Moi;*E%F?zXS zCZ$|D+fW?8P+`hf$u&t*{7(eqh7(+Q5bTscY zHQ%wPv|(RxK;LY+aYIbxar;J@& zJ2dFap_C|1{8AEtwjXVte6PSfx1Ya@-~)!eMc&>$;xnb8n;F0N!BHevC}8UR3UN>zvy~$n;Aj)N?>07Uu*G zgUg632*7FbA>GKRLw~J6bpYh7BUAaxC>Rk70YNFIQLh64CnO^6( zIpsL3`|AmpPg7y^iP>tv)J9v;X1MWegM0IQBAV+-J`Q6K^gy@ny>(0u_->dA_+(O( z6q`Y&h)XcUg~iLGDOi6_(nwG${~47bNKaeTBt(EvChhYx;H_)z*AmOuJg#4T!dkcu zb#V*OHguxe<0aYqzc%WQ^hKQ;9Jw{mb6?g&as(NrXIFosyoLXjB4O4pfhaf#g=AT(9inJv;j_mEz>Y2Q|CXb7C}u1j;TF@o&r8jXWS}Up-)~j zCak7CfE(1P*2B#Xz^hD>#jIPFTJDq6PZd37UoryoT1N4c+94kH-_0W4DeR@D-TG?g zU!O9~g}`OE6WA*{eu%E_U#>RAW((kuU8_U4b%JTJ3R&9)yZp7o%i?aG>|uDBWH#Vo zJJ_+6{9qNtfqAvC(@~Fo@wD|8FW+Mpc{8|GKKL}`7KbK@KKO%LOh*%5Fi%+6gcfD* zzC;BI2oU`NyI)5l&45?;Sv^Y-jvO{w1wBb=jHmKzJjzCpu`zAGrA+t5Z+PCHn;Q8cQD z9kJUfpV%`;=~+S%W-x#}juf^Z+V9wJ(7MeuaOA-KgALlMLc^$L=zmWPcsLL`W)U5h zGlnC~VGV^GNA8f`4La05C$xO?vCsi_(b?*4nCU5P4OY>da;K(gM}JaTx1qJ5ZPM9T(LCm9rD>OZw@|l1b5hAc7&{DxS7p;r zj#stLw00Z1UHoCkc^7$wj>Ll^w5ksSi`yWiFx?VZRrTjf zU8WuFO|a5-B#=f<(a99S7tXWwS0iXY1zIhXa!wfZOp%${L+hWB$2h9+4Kb^v5OMXw z-4#y2WZKOg1WhhZ7j%a5icJM&r+U<7!SFDydMKZD#AI_A9)8XlQ&!aWYPdfRy-#Rd zY`p)`sD2}p6Jd}u=mf|acT!yS8+||7hw1>-fO~nMF)ED*9!tB!>7zB#_Zg$fZ6|lY z*C3QEh5XbVIVt^I;=*Z2V7f7)4LGT}WZwwQXud)2QR3}WlIh5FE4U=w2%7NnAkybK z2qjo;GO8mm;BmDct~!IA%2&(B+=D%Ir>7AI9*)M>kRf0>py|tETGbiJy0&J~f>rI% z%;`+dAG7HMt&B~mQMBfq%!3>^L-1PBmd`TQeBON}nes~GYCJB%@?P6CmB8G)8C6qNfs4WN zJ)rOJarGzFw>qpErHW@&MgtSgyA!+I8UOos!y+YPUSSDg8Q{ zG**gjt+T-q=Kmuh`2f)~G|A3jvu3?J^Z%b{P1c@YZ9xiIZPo1z;+f-VRql*zpCh^! zF}6y3O(QB7*rudPaTsT*qT5X|(Q)8#gIMe5JMLU7-x&5eep{>N?}0cD;w|ML5IOGW ztyq9ZOIBTP0w(^?2%|dz*lYJhZ@G&5nllp_!j~*?E#5PAzO=0S-uIm;y8Buk(r?%9 zc=L&;?>+QQcXgBCr9G2W7D_3ZW{#ah$?jNHdgJ(gu9{E+;*VsI+Ohi-LYYAa>BgVr_ezF+Ga?CQ9Y1q8aiH9MWxQc0 zx?vNzX$BxP5F<40VjAXQnr>qn#ABLJo)%`;&AL+L>V7|~$V$9%6k-@NX(d(P&(KN5 zb5yn+wP~e&*z4kr3%iyeT*Uyn-|w|{#HFIsGo#ZwpfkcHP)R1xQ76z?TubSV<9X0t z>~(s_#a>JDk7GSqZtk_e#u+gs341gEei4#wMa|CutcplBulR7U3fKfOtgLlwmfBYJ zE1C`13B0U}>4Tap8&o+htj>t#u-w0I@#UDjXXI;59hKxUNja8Jov#&lVo~WjzQ-Q_ z0HN<|G@={o+$%2Sw6U+)u#`zqbyg95YmiclytQLLgZDCy3e7=YDm~akEVw{nQ58{< z261u33DqNiVHrafj5306dADtCDi40jXcrftaW>L7Z5?a~3rG$KaKS8RhJYyG4L0o> zi5nX5MUuv;Amn=>J;;WIY&;R`DZQ;kNgEuh>8 z9B>kis{2=VqGBOFtxJ6poz6~IUzMSJ>i#be{C3?^o7FLCoAya*JDbx+SI!l{9;H!0 z4`dk_-1B8s;2xMg4j(FHBLFryG{QD5fL!CpxR`WR5=m}O35d^fv>fA|*KxcQ@?|YF ztz+ds%C&&4$ED9@BF7DmbF4&9eNUvg#>O1axUo@`L*<;JE)oQqcq=nk&hXhaMCPS==>GO03P_=zpXcgEg2INif8f+D94i9{r?_yBA(|5dE z$_1f=(X6cwI8FK-F6nmQPk_R7IGVL{bQw$8pi*dw~1y4k5-~5XRi^Zq2(d z_9vVhxWLW8Q9Ogw{dMYKXmFEF?R^gWJ#&bg2sZ+6(~+#Kbc400T}HH%K52FpQ302o zD>F@YWXNo{rWosYLCIL#R_WZu68fk z^X2&rVe8D&m5V1Vd+279Cp{MdusEg{>Fu&OpQ=u)>*LE7tc+$a#W|RrFPB4Gn?} z)aqZIrOycVDXOun7P%|nSP|hB8hCH+dV&Narxx-@C$Ih0age8qhA-9b)lxXvBHMnWX$3- zMY>@Ij%j+LwC#bWemr@~etha@HBF;zB=-HpTpQOVlUN_*PYQ7&F`Ng%${`iJii%6X zANE6BSUQe_jrnW#;{*@9mm?U{Kd7e=synWxU~;{w^S*4pUXBxea3(3?auB{k!lKt@ z%vTO$;?(Vp><)xr<-*g$B z-Ekj^?*YGodmEGgkmP+CUnj3ps&tdijr867ZqiNQ^)`}%zWXgtHjIJK?}%0Z4-wgr zOxp8wl)R@@DU^R7Q`^VQS^xMNWSxx{c(W2$*l#c2mw2&QRw?($m+w5nwpR<tdPs!! zX+}9vY{1bEudIyuo$fc3=C!BqA0=ujnuZ~&3mRr3HkOAuFilHpVcg3Gix_;8x~Cp2 zFZkw4$~ni>TDuZ>E58}|ZndaTSwR!^luvVutLaT<`ec&coCHC8ARp7~3oIcrKImeZ z|Gu9XNU24?4O{F?wxi^BdB0qpOn3YLjH?MRO=}4*OlpX#$m$5pPpJC=%xDWOPHBp% z%IONoi?59+OK%M+N^Xp<%-NUV=6&ukAnED!P&9AiT4r}93h zAegU#Ybm>4JXCK_xKQP%p-WL0WWm#vhU zifUI3YG;vaPlmZcx!#JW}j;caDK1!iq_xMJvXwtj1XlmoM)!A<_;qfT?jSUB^}a=+wslVgq~^QWGqGEs-rg z(zDN;t(;@_1*6^J2kg;CuqWf3SA3gA!j~#+0ZEMsTkn)F0ZDXuaz!a%!fY$iMPqqU z_J2I}Nab)PmRT-;St#-$OS&;oWGnRt;VH^-jeU*;W>Lh2RvJtYp0z3ykukSszQ2`3j-vCIvh<(JduLoImwdDV(tKBr`P znDzU}zraBih6HOp^sG>4w_?8AeFAgdQah{S^GJ(mxWrIF>{m48un3tymPF-n72xSL zx7vgFC)04aqsB=}Il^9BNX9e1-q=_LaAt&`#!ro*xoVoWK>9F6fzwedXFu83+!mHCWg?pj`G;M{x| zU9|u4fmv+%Q+aQ5tM-EIS?+_?Io}nwVF}kc?+Kz3dX}5qs#iz_9TVeXLJX_jaJN~vm2p9{5aH$69``7IYg0Jf6pcFn~weNhR9C3%e znh=i8n44#Xo*_E$NNvwj^hQM9*`nhhF!M#$CDgnfI^CX?j*oBhOW{a2=M%3SR$rYv zU5tYd%MeXC=33c^^rKTuUn7#fyI%h?m&k{yIMr!=u3tkYV*w0n`ADM?J))N88k2J~ zqGQ4G1;Sui;9%g+wL&!FxNr-i%$6t5{QP7^KSUamY)Rjb<)BmY$FlSIaXp$ZwQ~<> zh(3a`FA}bD0>R&boFUJKxQ1_7-LG3&Z749?LQ0D?#~kL6xUlSmh6Am5n&Hh>!GDUP z^%DH@1BJr;C(Q{qACYrZXkGDhE&x+x|GP$U@yx~6Q$xc}d;3DIF6AgEm!Bz0UOqxa zg^o3K&9Ww~IHshbCD@a$}USiQ)4(>4Fj6C?{ z!amQ;OQ_jR$#zL;L?nEe%qP|b=cq72MbLzn8iaF)n(MQm%Od{nL$yKt-Mjat4Ld)K zq=2=?5lh%ViBd(QM!`nRpvmh9*&e<(hN`0?e+uCbnjB<8Rf^H9=vmdN^{Un zaIlXL01C+V)q>GcQNQOuOyM9laaYDZ{=m4_G1rhEt3PK!DAF;jf`L(CgtupTwkzk>M=Mod$@BAVV`Hp+vTODvy zDWX@gjJ6c;5DDGkhj3s$81^mud6h=a4h^Xg(Fp(`Sz3uWTIu`+1syVmz6%FNOFAkt z)j1To zT?$Nfpac9x3{DQc;WrT^*>j7mPS&5 zR|RZQLCEf^_OvFZzD(q1ajFM&wtP`YI!=1*eKz0T!m#Kdo-t-);n(wEFjP3`{GgR|X%6QJ;C<{3vm>Euq(><=7- z2t-?n!jHAoV&zax32XvD*6>281ds|nL8X|)=(m;9`Q(ve!tCP|mUs95Zm{A8a_IqOa#J(tbk@@erDy7!iqH7PMPTiDsEj`!QC)t;i;e~uMjt}Ff zp9SAKxE)WO)N?<93n0kRe!5tK=(0+LhabATL^)gcL)~EavN|jD66bR{A zK34!Wu8sySJX|b}#CcgUD9K%_kFC81gsgVW$FAdgBE@4f3Yzr*4f$qw!;fl@@_82ED|oCyilg-*VCoMT1# z=hv;7@N=2kR=N$|U*)wg$n-6*>1HV~jRZSXIMK~$cKgqs%)+m1BD~~ca=O}*j+d?& z+TSgV~rEHzD}$&)>AC^Ctt3o6ATWOCn7;7TELAO zmvxaKAgKdx(JWkR1ON*M*$NP8m4s@v0#*f#Iazsbj=huDmfJzL0t^(j!I>Mysd^ie zl`+=X)GNHW@Uh0LuDW8(^|JJ6XnXxUCe6L(=EdUFh1bO?PB3%sq^YxRy8bbG`HU+k zOslKVww^wI;EJu?3!a&M;G<)Ew998)Uw6}V*KKyYnUaz$IOUE9OM@OideEc$E%eF9AKwspVq@g5$)pzZB5QDzmPXvW z*1DUT+-uj;y)DBhg2f{7FlI!6lavF12Ryn>`ZL$7x0BxVduT~XX^GA0Acp&V(tR-pTYPqpP6uR& zxg9&+IPk5HBVQg6=Q+W&YpWaT8?UaawhM7N9mKAx7h$&_sc8B1EphSv9X$EU8S7^* zy7#i6P7B0y%6~O-4HYsDGQbbRLqjMcFeI2D*%)ynXNnS7P;nd;08pi&(J(nTV!=tv zvoaC9o=kt1-)Xld#c7a%8FAJEEJ}4*@(i%964@~2I$~LFmybDPt09k$Sve@sZ`#0R z4N2nrBOX*;M#TQHa7I*=j7qng1x|N3RPiB%T0EsTTd7CVR}U+> zxYd^|K1j|vyF1dFaF%g)M0_do#M5`)iTz3XxpjDh!7s|B-@MXqF7QG(=oad1rG#)C zpjrXtqy`xK*MgTTe>&x>&})+!!QWT~Lt}eQ=g>CSjLe)m^N-@oQ>Vojx6W+1Q5-#r zAjC~IHP>HXTXREB?Wob!6Dvp6u&y&UcPo5h)@vtDyf*v!!fu;q?0WazmS^f`&#u4f zrkUjYgz48zteHL?WLuH=v!nYyEHv1Sa;1nY4FO$9feo-A0~HH3zrus|FV7sVd&k=WPX{dT$w-zx38@u4T4ns>`a0BCK6 z8US3xdO{A%l$UvsauU!2DXk}I&uH&4cHUanw!g_A<}NVapCxD4XwkxcC{CW-YI#2uJy+HVg)-!%5$ z4ShmAlhGi12o$hRL&|~jhBh6Fb5;qAC9!eiSSdn16 zM2v&5^5(%~ubepSYLrciB0YMx^{(st<`Hoc^YFn{%W8Z5v1(G|gt6L=H!kd6e0*rP zE2>2OuL@(4=&ilYS3m&D;PO!AWqo^TjJ5Nl2Ki{wWTT>_9iiq?rxw$zBa){K33QiTTd9u_7RLu%dO=VoE z4Lluy67a}tmwZJBup1Ad`E+qf&~B7BZFl^aUsT+f)_M7a)%V!bzuYo&)mX{{mQJ}h zt&B?%N5oEXRNP~=;b1Hp`+WbrvLjQ(Oi`uV@Fd=f%W-3~XxB5;qb3(SySk-aHz_SiufOp>9cuvLS+o#HdaTxMCnckdcXs43|-J*4A~q-EPyIk_({+ zjlSsjSmZ5wsJCMy{tXN8rACo5H6-#wQ$-3%!HUPUCM)~4IoaCOWIJ%c)9rP z0C1K2BGmoC0O}sIG5TWsf^0{`4$~W!FBhLjBE=gvY`|PhnmMoWdU5KlS&J4g zI>5sR_D|iEpY_tsZysxMGp9S;@{X7^b;|S`UaOllwGJ+Eq;oPy+C$G!Nqa=i zi70~V>jWuj07PRjb}0BUUgY!IeO`lPc>O9&h#Z4$DsCic)0hkgu7sQ z^|nKAyfSXB-+f|&_-c!IU#!5H=-+}V)pYN!f+F$x>A-1mv8Z5|INNYD-i? z{!}xUm9IM+JueM2&iFiHTk~nVLo1SD?wt5^>Z#j{=F(Uo^7QCdzi0^>{~ zLP81F0R_d;s(}!w1jAVd8@H=A;ZQlDY)4HyJ!($qv0(%IKWWy7LXeG-$A2?=-8pf+ zoEi|i$@uxo&>;GS`XnJmDQ8i}0f8x&O*tjJ5jdlqH2|eCzQ7nO7=<{5tjsi*!=7S|qsn6nJ+g_! zh$)W7ZrSb5fL)hB?Lm*zqI-;u3dk#?jL7@uZ4Xkjk&M~65xpBXN|#BNE&p%e5DvS= zBz(**Z<{|;OdHoJ7b=%3T%`bHy~LFO?L%2|nAf<83kR56WsY$=(GBx4qot(AFv21B zvBt*%f?Mv(Y90nB$Z5-NBgl}(BSAIJCCYIw4UiHU6$~jg(k8YanW1#`6h+ebFV9tn z5{wH+j@`#)Ta-9{KlrEsVyicbFW!>#EGL+CZEfWZ8*w|A@LJw}`=`^#wVSS4ID>X^ zht0j<_eqRd&?{7$oX}3`7Z!vRWSEhj>a-zPD5L*rH&X5PSkxLG37~O{W?4sXG=NFf zor^JT9O?g{xF6TAk8GbPK7I7gh?&u9Q|9A6iQ#aj$cgMsZ)!@!$Hfd8*|D5jZ1kAo zP+_}xMi~KuMwZ9Y8z7p|%!CC1R

    !pma|lSQ?8FBe{DRl|@FzhU7Cb>&@ataZS{g zrCQo@Lushkm71KyL3$%QD?KeSADp!x{f z=8g-xggQyFIyp&U(+DO4!2ygCg$vPu1pqEc^*Qa)IPstXB!i@fDLx<-```)5UsmT$Yl%a2onC zAFmUqUVZ7M=U;sB~=#ZhJ zS2lbGii8+5IZ#kxQUi*iaRi9X

    #R4x5a04mzf2YJ>#U<-Nc81}`=EFMdUjIP>d| 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

    b(7>T&1{%W+D%3_gwxcBR7_myM-&X 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 DnuPx& diff --git a/graphdoc/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff b/graphdoc/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff deleted file mode 100644 index f815f63f99da80ad2be69e4021023ec2981eaea0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86288 zcmagF18^rn_bwdlW@B$`+qP}nw#|(;wzaWsCmY)~ezEO*zkUDjy>+W@-TJ2H)XY57 zXS!zQoYPNtpLUlQ69WMS0RaJ3LJ0jVLzJ^=wyjYx2sbQV`u6#@aFEd}C7ARyo_oPtEW^2+o~ARzQ{Ks^Wuf9D zVY~#*4V{6yTr0pbkpC4#a~n@HAhrVna(4p)y5B3c1xIONYG?uiO1A(k!vYkxXSKRi z3m^yrO8-xf04O9#BrrcMY+XEn7zOZg?jRtDc1eJfWUnMs}RH1W`cKc zG6m`?05OnApu|9eM&)^|85@`w80;7ZfRI7Jht3O(jFk44LXZ$+DhHU58k5FV8dv^E zh>nUDaH86GA@B^jfd(fA8R~$H0s-+@OG*H*1SlYee!Vr9O`V*qHQTN?+uAquF-`qD zga?i7UH)3$eVeagvz-!O-VtRIn?WmB_vdN};k4wT;nno^VbT8d3T{)v z+JsFD>ms^(OgV>fQP;+Xy_#xrfkNBZy>4Yxb8_LF^(G$DK4SVaGe-34t;;() zIMQIfF`J$AagyuBAdI+k-{=)5_`|(-b$U>CuQ-_yrz79gHec-bxi9*a8&>6TM81g$ z6N5xT5+Wf5(u{FkM%7Vooa$7L=vL7XjKX^RhnY8 zTX|XvKUJ1%o(%K(74YH+RqWM%$POLfm^^G)WDR|!2JV-BlV6c9;O2_u`Ml< zF+{rcn{s>7I8!opE7g2ks5L{RbsJhkd(IhiW@amtb8GrKa|w4FGfYQ?cWvpLH;A;? z@37j&Fi+TVk9_jF`Vvq4iq`;y+FXPep0~I58s|#;7qsD*m@9`){byS8=OBKE4E`6C zlDEhnhtQrEZu3`p0w=dWUmW}jaRPm<1PY}Bd955XUtBuK6heO>b+Bp=?0F!QKlyeO zdfo)+1TioOk)S-0KwZBW)!+pZNCh#bGBDQ7*B>|5)L^H8*3sQ$dmqiaY`uPZVrlJq z*-5`uDU6M>SVQ%4l&i{_5G3o)+iRa)Xvis#y=n?=zBy@MaEbKjF(?`Rx@syBgCyG$ph2 zCw*$G7*x6VO}4EtQ%aJV^%;Z6w$ZO-4=~eoj+XA>n!&sv7`i=a+dh6j*Hp}&UAtum{esr7o|W~tMwr;*F^#WMXsT>rq>hR8jBn2*aaL3e{U&RG zn0ocKR;!`?c!+CrvTSwj0-3(!Ij9n%%nW}~Y^MlHKZdBXJ{T+Gg&j)5{S%Kfn~U2Y8N)$TrycL`LN}9d#a_5NlcgWmcq2|N|fW3 z-E+fmDXP_elM=cqM+-aAeSvoDGVn5C*mR+U-<=6mY6|OU_a8H{3|%*uK;t>ok%cMdKY@ zQdB!VaxK!t-DfULy!tln72qs)by9?W+InLIx9FaTYYU6WMo&^4I*2TIpY~F7{yd-jB_I-uJ zfjJnpXzR>FPwZ&%Dcl|@;ev=U+iR1cdcZAP6fY9wC;i)Rf;S55^$YtkpJvIsmpzcq z^tW{8$$~|Gk4VWD_^M9(L-YGMUwO@ZU5nr=UHXq8H|A{b+$p$XXZs)@yiIJlBm2G= z1rC4cDedFEM3sB+iOD~i_H&c4rUj-S=db))Tm6fvAPcM2KQhKFon}t3L1n*OFbEsJ|!+Y(D!HP zIa*;iaJ0IvDT#!)HEP-0@ux?RcXJ3*a}0WSabi(a8%=ijO6Gad&+bI>)!vF$>;Euy z*hZ;*3VP6PosL^8#lD7Te_un~3f6 z<=Qyv^#$7~>Gws0gxT=}UiSHdZj=OFL$zMXb(Q_Gv0f7+UeLC07Z-N$huheOc^Y-V z|8ZJTmc0yi3!$(kXhQr3!K4;vNQbGGXh^7dQaq@`teApqO1UL{4d0gqbGX5{6EL)z*ex6i2TtmUB?toj2avRbW^P z3USugtTZ;GKC>!yh>@5&<=r}ZW;j17TaC(n^nIyvgC^2*aC-ix&mgOGzPDvU#@yaG z`Od9EV-X9P_=u@5SbagvFCrVu-E(8%dE@zSa4K@{j=kZY9piBVz^F~DI`ItPre|P( zLL4G9(ouG6cG?<(WtZraNZ-bIlJLcE{s^k8ntTlBv+WHoC0j^}+Q$b$jVwXPL|23o z`gxCHwz@<|QlQHk13{xCoDrnxsd}henNeFVm6cE!%LlTo(Af&1 ziNk5^&)s_sw0h3BVRm7J)x@nwuW)J~|K(s%SQ7?f%*mpu1=Fc94ztsqIMKD#G1K~m z+r{QCG2bd5z4ge~Zqnt3*;}T!6&ugCN@r4NmYWOvPh-*iY@3>#6Xj{8OA+%2x_au( zB=2Cia2)^-zz0C+L}A<*o$Mchi>#d1ms{4b>4nA7D+uqHHl&eaBcvR&?~xIY$1iK< z0A_0;&Am2Hs7A&-nopd~5uV5yqRbgRzyEoF`5wbO8sjhPc2tQ^onXE`#d)janZu+1 zSi22VxvYE$q>n8V$)5EALa$Cp=<~6kDF|`k00K@8_;_K{_|ErX_Qb^G5(@d``2!bD z;i=onjDDR%&Y>3?1HwqnF{j~9sV}i%Ok+)|2V>FlA{%UK<#b2?@`7`muM955whAY9 z&!JfR;`#?}{hpkIXR*ha++ru%=@NvHr4#D6al@#^udDkum9Lw%nmM31s^-bRlO&a;V%NAk_+Am-8H?7tzLRiDPZ`pU8>!Z-tVcXcQpL$( zI~j>u2~ahUA?LL=xH~D`a zQgnmo-9`RWq6Ci9QMX(|k23Oq6ssFbyoJO#)^*9)mq;?_f2B0;Ioa*IUGB)C)sZX} zPVE@;HC^_`nNd$(S3rSdj2MVD{5Iv8)~+m>N@kf!w>w}A&WkGIFd>mj8zCVJi!%Aq z^DI+;EJ0335Vm!oC_w1j_B--q7zBbbm}tAU`Cu-r`<>9FFqAps=2V?I@T@fuJAINV zXAd)H|GVDaPrZG(W~Dwiw>NEi*biTS2!^=6C^MvSkDL|_`RrNMKg^pW#*o68XWol} z|Ib=_{!>fTkrkN(F3?gMG>4RV`kgy_r91yxclN1KtxVbZOPgVwl&-I@OJ+?_W{p|O z7-BKsUrMOowuNY~_L6Pw^70ul^>-;SdU@l3MdoTp+UP6L?rE`kHILy z8LK&FI)|fHI72SsG7-@S(*J(X@YUw5zl58)=R4tIy3i{#EVFpoZqy#t1M(qb?spX> z*(%?Iu=$T%Sp+Yp#1I-&xJ+C@l(l$K^7ffzouQdyiHw<~eU2Qn`#N|4nY_P zPLEsaY6g#VPQPbTdCi~MF6x1*vLu;Q%sQS$F|&#%B|0U%3LP5qa(Ts^A=xo$jq1(> z@7CBK8iPSR69qg|iIs*u7b=SVeHuAvwZIMywcv7GUs+C`TEkL)PLo}fB0Pk`iRPBZU;f^Bqj>H;g*rjJpHxKiJ zw*|p~AP6)1MYZQJwx0v7jJ`l+{q9!O)_(NCWZADV$`xt>jfNlvZOL5$ce(^{;sI*2}f=J)99Vg5Upl^EkVXoHZw+J z(jd^r#5{9(O&wQms2-Ldjq}wjXzQ=)!}s%OT5%L$)O=9c4vPhoj`iUD+%m#$08}~U znBHmj`kNKD_Hku;ggre6O!|z_i^p>>x{ph(R~550UZ3dNkvZ@r*Kv8WKRNkV%IS`f z*qKp=8M$f+@mpgEMwQG_?Al!d{D=c#(g!AK01EGXw0ZjM+fVHU*3pUk1&(2j%~w9U zOqrK7M|SSV-fdsUX$5quzpIL0#|?Evp@tus+c$aT=z)D+Son4dFE%w2O!sLzDeG@$ZxSe)E?MbFFOMH zVR<0IlO!?M*U=;6{)Bg#$a(s5i_H1k$ob?yA8@}z{3>~KFRyS`q@Eik>0kIT8@xTh zIaDgYa`N4fRt|JwdVjDrdGi?2+{ombFG=0kTb1_CX$FIC(m%#}@CNwZtJBv{F2xjW06KhWDP=cYnKv8qbt%x}$OK129kXccP}1ThiB# zYWyw)b*q|$#d@)&G5q_olD-?fg{Qdgu&Ot9Bc204-6Q2HS?j!w2$%P&q2{jrGd|H= z0(zxlJv@E)Lu(XX6F;9#%qm$o^OReh!+M_fhBy>``JZE-u=`X}X~RBf3X-f%EGvF7 zU6&8puVkpt#SihR9r>x2)aIGZn>p6}u2mH-Ay)=N%Mw%Z=MR|viCLsa45>;FKW{Qs z2(n?f57};IriVDEr0E}EbOR$BbtM^5nq=qP5<4}wimxs<`m+6wq#NlMyY;uJtSoA) zg4Pf$`75Wl_w=)sdy<}YGd@CA%`%w(p2Tou;@uB$7sZL=+Z&pd)0t2 zQ`;-jsc(^f7ztI`TrZLBzI23Fcsj4jxy_`Ia?gfT-_N8_-vJ;$hA5Ut{}&AuQ$HqS z0dT~WU{>v$k2dg}<@S5t&nzYC9n9qh!kSSerjNOp4NfOIr%9JxR2n2dimiuFY5dMD zQp&l~rYfOsA=LixdB`~!m{t~D8?x$9`H*_BK4?O<&dvA5VqP?7{LvG$AoOuLr#JS0 z@tMk&=;+SLj!t<@ZHgn}=DHx=b9Wrog`Eb@R~YLg|3vY-dt!ZP(l=uVVP0Mb3PFZIj+&BAxj{Z*ygC|M$BO$ppH@=#?C#S3h!g z$9645F4QCqI^}nUuhaBob8F=LsaMKhv~)&bVO5@K#iNbzwdTcARLO5<;`or%D}F8egX1uX)est10g(>dc8A z%cNZ=uPEEq?%wx4y)R3JyP@9=;E^B}?-YcohLv0;@r$<*e`_6XvKA+jZbQkYy&~$E zljRiO{zulOlYTIYcmnBqZ1UGUcBOS$9;09Ue<}KG-y(S;4cA<_on!9oLe9Zx*59(M zp_8@g9rr9rw~hGom^E(I#y#vn+^h)jZU%VfHE{i{e0g$d@ z-m2%P(l5HO0$4Zdj(-Cn+b)k{x5j@}Y=4;-16o#wX*jjtfYkey=i{g$AmoO=Z19z? z;hi#Pms4+tRBxAc%b@FlUBka%gJe79YQ!Djee3%YNRyZeKzqrfN!70Uim!}YKX7Xk zzHIbK-KhEu-+zvxe~#ew>F1-uwPtO4|Dz{gV9YNR^){z96X8<-&h{0?E&D3}Bo8fg zHX~lW)SSWupj{gSu(d^Q4prp77AR_->iPklAJ^%a$S=H`aS=Y^7`&U*QO=2I{bHsV+-xU$K={T$ zO^g)qNnPqzGt*hBS_DBTMy4Y!sL4~C2zfFo;@X7GscxB2zbS+M1*^&NL@&2Vbq4a=n!W))U;OI`|m$@X=OvJnNX(iXj z7qvgAkvnprpQ~Ig?`Gb{?O_gmGR@$}T2iU^m*=n{K&rf~DYkKDr_G2k8t2A_?Qprl zIEuxcO$#scr#G;hFkP2k`*;)NZ%uZtpZ&l!+PU>VzUA*eWF6sJ!bt4r;1XIfHw+^PC$ZdT29+!F5Y5sR=g5%%t+W?k}XcXTXg-ll3XL~8ZX z#fj4^0Kv>;2U7sxpT41>-}ls0(WkfG*E09gC5roPoqb`;KY3T`P8>@JYf3Yirwplaf8O3E{TSFG9c-weQP4Ot0K3*f-|$a#F={6Ca{g;l_(Ax zat|P)E5--M7(k3jGxDBK>yy6|Jo9l{_sc*?=>A@&WBW4ZYm(=-{yvzcP_f`3cH{mU z({g^?8J8sxeyegZ-zN6~VRwMGo=Iz;+>?Pnr-rp$taj`Vdql-o7!C2&VFy7UNb(E3cybrbKtwbL~@cYPd4p7=jOb)#p{*I0 z*(8bU2+Gw~_W0BG14C-sER7N7^c~t+8JuRG9NPeRIHJ~?ky`$L$?J-NUflnyv*zq( zJ6eR`i#fe0v%_V#BWBjXfG0tlSVTzukmM73>$nSp>u2_yO^+u2nQ-kmTr!KGOmh?l9^+L zGDMyv0g6WE+pQY$v!WpN{8z<`u;@Q6`qKlqat}>a3Uftu`;}WiviWat)HX>c3)3&V z+x&`H^6@_S1HGz>-Sj8qJ?u^;SMctj|+cHz+*{Gk6 z8|0hbIqmM)bQ1S^@yA^Nq%MztasiZmpqv5a2&wCN2PmgVU8uc38$06w56OUsQ~+EY z04@mtmkfwb0Yt|GqKg38)&tTv#S%Bgk~e0OH-{28hf+5w5;rN5H*zU^*+hff+7a$C zs8>3aTb@dt(uE$WQa5yod%ARk9ZC`IRj5~7lv~kCotcFm?ENfMyMs8_=J3G`3STxpBe2|FohXdpxoWp84U`=OVqf~Rlhc(QA!w0c96V+cL1(`4Tshaos z9$ge_^bt#uI$rT*=pj33%#N8a`|!+;siMc~#eSxz>U1AtMfxu%>TDlWT0Ktt_CRpj$to6_A{2!D0{&&mU?cN1>3%a~$cYa7@1tqNj;B!{~~jcW|5|r;5Z&>tb=H zwng=)lx)YTv=SXivCv4fRswfvWWsL%}*6PMn((vCaepI#$JuC!mU>46Xd0*E3v zpS4OL-&IwSi=ZhK-1#?y`r0#ny)iZt;z}vYNHEjq0S9h06opJ>0G2XWI?9jriqcMP z-k(s&E)mhD}lLt%;5`4^}jI_#$2`@UD)3NfSq2i;dyqs3my}jG_N!#tPVM$s4 zhrxxt{X01DKDzj4W)lPsWD!shk;H|Y<)M{k+cz;~LBMz0r{!3lQ}Ud9=IPfUgrmFB zlDn7vY18kJD~N>Hghs{#Hot;p*uCCz;>v|KcQeUftH=!E2Gt9U@?eM3A>V1h&?3#DqytU&H0cPb zHJ~byr>&qgiEGu6D~-Wx6>n{jr_DwiLb7}5pjK&X#lary@jqRD1>u0lIRA=E1S=uw zvz!7kC!ONF$wJ@%)hinA98TSL*tu5 zm0y~O^25yc4L6lu`)wXMeuR1kcY^{@H%grYQ{#0JFQ*!lz)YADM+9EX#CsK)22PZk zxtc-i2oK(^!tIEbg@N@Owvwv>b(!uM`vsKkp%xaixeccI`d%3pvwZd;Gs-xWE?U1l z|7iWip#0DLuNePD#R#iC|M$XMWo5q%Wk0Lr+}E3VkTJ{&q_Ro*yW4Ib1sG|?^wA5Q(^*`LwX7A~R%)L6Q+#}Q)c zEbaOKpyQ@CHQDNM*L#ncc@$1T`9l)kWaWDoxp`(z;pxLSB}r=v{sASchNLx`A~tDO z(=yNSA`2Q(V@fRPS?!xdC-=)CRqq6Hqsz&z`|b_#tLcyXKpp}7iJ<#D9ufSh{`+_y zA!B+QcbZtq@ZMt-&tF4^_hmey1&ouU%${N}D2cO2w>Z%g$1t9OL+1BIogxJ+uTpw> zby&W%HM76r^tVQ^mD;LQ?Z%z7D>jxi?XV>_#P->+T4r0LKl%LQZin9$Wj~X?=Dq;_ zrz2nSSyE22lGOkQsly_8mE{=^xoi(R!sy)_a9Ev=%KqN0DtOBZsz-N{0dBfO`X zuFF9^-^+qJTtBR9km&0qyjw)xb3?ZoypjUEqG5-eF;8ItPx4*LGa$sb)-zUF!6N0;92Ppo^Xnv~8V>jmw@ zai(pbSnn*(+X8Z4$$frcd}o1HsX$FD>TUCztYIGh#e!Bi{>yLOzM?>6MW4v#J%>L@ zDp>b(1;61goIhDAEK(}$g#P_|iT^LE>4@FcgWur~AAv5uH}ouQhNE^-?WAf?D<7Wpn^raD;aS@y&Dw&d z-60vZN_X~prSgm2WxW>Qt!+9Z8UK)wTHP;exKjVcGN(QQaO63qm7;%0O0DIWy3Jwx%m$oKTTQuKLEhf%Ru`Q+?f`8rM2dAeYL6XczcQ~ z?U~k6)Bgq<(gAG~nx=eropImwCWz=w!}*VxsSUpTC)Gbw?6)cmMc;_|%lR|XQX3|y zHOt1V)I4deJ9AvOMj-6X5?ksA*H;g-&#&#=G*y=k)E9Xb7c0v(RU66=x69ja>A$SF z)-s;zhoL)Oo#KMZs~g1Ir*bA7W2`C2Im-@MN_Ljeue+v86G z7Qle2P>2X!FcMXkIGjHer3qu6zxAHJfAnYc{l)b(Kl#z?_)iyKyQO^q9|*;o;R*NL z6WED&-+huxUgFZymb^$ zs_BEa&bU-$T1I4QM`U`a1PaLn8p;GJ%UdbEacocOtAj3|xY%1szH#&ytL=l1_c&vQ zBq7g6kQqGUov6h*5bGjB;HVhZO#!O_inWby?MnN)L1l{}8?LuaF>O#wRii40rS%1Y z9J+`84sVX>XGXr()JaJmgOpRn)a6ET7dnNm(`W2y#2qO9EfW46W$q29a@rUR1|)gX z_j>E_zZ>7AmU-&N{sbRnoD^E%?5Fo)3^8Gq3yG?T3O9<2!%nE41PI9(F`<;SHrk?`u zzsB;7AbvoEe))4IeCnAR>_`~RsTmk#T}_Yl_8JYggI2~sfou#SN_ebA#e$=5N}-BQ zXQ!*L%aFhH{I5*j4&74Q^)YGNj!9{I+w&$jjx~@2a^t|>Z)KoRuh-ST4nQ3+c@e)g zfj|a_hTEkDk^<*CS3>$*V}3v?Xh6$5Qt}o3nN!I=Rc1exE3hD|`V)2#o<`JFO2PJf z)2ODEB1a-Y2_n@H;O`WNLnJ<$?i8X!%|70B8^=Q?U)D<1HdYZ)p;g{?TKZZheA?)= zz>NR$_k{?{#Dx77D>jOJsDeY(RRUKNdu{H<1v*>Hd`{B^Z&S>D+41HC=T^e7!$xPFnsq3bM`@jMdB&m@ zZd9O?<&zbfRACk+;S|CaFNIi{~(VSf&n# z2De$&J{K@PGl#hFvBI&porudyx0ri7WJJ4Yljhf96|mSiGt*>8hRpYCi_vEbdgpuL z%Av>|9v6adL-c58Z8Z zr{}_eERX3$`nWDHrm9ox`ued3D6y{9WfC1Es!Dc+X8B`4Cp~oqnf(w;JX7) z6=B{X${#I7=mVafzsVZbfDxf)MokV~8cx@`-+=#()hCGYxz0tDzD6oD>LiAwt409< zMxbv0{mZjf;EeCn49MjcXgyd&zb-uUQf+Zlr7iB+nB`BhbfXMRv-Cu1yF*Qbc+wO= zeCkg%P2+4hHb7#ot=o!etS>yOLY#06$6>H?NF|S=;!1gh!w@IBj?-XM{)WRi?i0`T z2+DK>#S10m?S&{T8k z;h@4|#?YsGV!-t-0Xt-w&hFmX9p2P4#8cQ*y||yPt^#R9W`2<{bnPM|rs|L#r&vhK z;q8JGvMs+mWPcTMU$!50|G@J)V5F4iCB6s;ogVcNT#~Nod<@0$gxZ^0|($ zmscrOx=ZJR)AxCpbmxD+k0hh*`N)$EqvQ2IVKz9%CmxbXd!3Gw_mV389`Ki;{p;?c ze|+Oxy{-4R)gfy;#5PN_Gg9klLtJIq=xhb+k_ASAF5Ve}f_SnF%Xn18Mka|&9l;Qu z0mObOm4t-kzmNq{%*8B4-V^?w3YcRmDfP+wh5#!07dtw#w1YI1pQSUzc&hOcoB$b8 zD%JEc)jX-h#kLAPI6Q|m}Mj@(88s@^bR!2EMnpf1qxK<69QFtYF&pnyma4eLRb51F>_9d{_X6bnE zwI~pofsT64tGUD3{2?=aHc4wi2%|lakLFDRi3g7ZY~um|{$jvJE&5~Fa&NK&A-CJ- z?dEK{C*V(9?eEgG*5JaV#;D4y&R_Wn^%3P6?V-gf%`w$E-GO=Wb>U^{Z6QU;P0>}^ zT|otj4UrX@9brcmL0$r546ywaK9}U|Bh7W`Ho&f#e1Q&(#Riy`vfI^D&F+LNMSdEx z6lFmcG*wxC29{M>K@J3#Wj-cP+3Q?vBG#TxD0d>#lyRY`cIBXU7O6%)sdhq62>3#@u=A<;S`Noyne1ZM%*ZC<@L2a#kYH=e(*D! zItiGMHGs;Gjrrlqq3ijEEt-|Y(+A}qh=nRVHdmt%w_?gkYoSCvSvcl0Jvb|!n%Bk1 z&wE=YX8wL|1dV_z&b)J{DcT^Q*|REdIQ9?nW8(Ip|7$Y@eu!h51u~pLKtQlTp;1GG z`a|JJ`q$LseSBrerVd_xo%wGO@PWWiAtL|d5?QL^-Wy`DxOR%EN()BJ-&q>1%{g`4 zwY%c9=L%kZO{mJ;#(9UcUaSR*@b2bsYei`{*8}y17vy)CP;+N@ROm2=EVP&ynVAWyb} zz33Ob)5<>;CEJ*NS;WEco_!UrB<{$6mjuANS^)8I)%gb!22kE%3*JbAN{ys=!1# zex&!ta=^$0bYP>yC-qf9-eomjc=Q|Vu-$Kd^3nCRpi2rAz+7*lzUoS*O#4;RktM^Ll=SMe>BR?2F- zQB?Dyl9tNq=ui2Yr*>4SZtY;{ny7YEneRB-zSWfm=G~X^RmZXKkLA|msz=*&;YLkZe9Bz1HJTsO ztCj7o)2zc`;Mgy4*BTImfO>!c*t(7mLg5Q~$DRoJhzI1&giv(G!Xh)o9R8taYDbo$ z4=nuN4h=i5xgWePp630~`R=@Qe0;Ni3VXT*uXxq4`uf88avXG6hG@bm=h{}JKaFDg z2EO#e?Iy`WA}^ZaRF}=AK`pV2WqDZZR~nV*38ggWn4G&Y4HLRw`44nUOcbnzHt;4) zS1tjB`HJMZKd9EULqs9TRmKR;^c%X6n5I+Z$BkF4`B9<@}d znb?}O`aD+MyW(={|2Pym3%(}eH@%6+h)cgQ->8VuqjZu@Osud7H#vYdqLcUG;CB{2 z$^pk&E8C>9oD{AY|D5#9<4*Tk-z_n-N#ZxXOT3DSEb`8lZ;F;@aivL=>7)Rbb-Mi9Q)qQPg4$Sy?akik=*m8E4Qs#(1ddTHEyg;4- z@!Z0_Ge!S!>;p`CFZtZ}CQ@qHY^&5A95pPRTHG9eV|uk_O*{X+&T6wShyJ+rOlTX3 zQOvz_@c7Vim--dU|AXj&G8tmlCaHb)5c>OmFZ(E7(j)M@tfU3ZR7$lFRt9eOpIK~hyYt?K426v(r1$dD$ai0SZuxnOb-H8=iX$E~v)b~ha&P!ihyW>+F18M$e` zUH3sOn7K*JW{60UpjvI-=<4(#$Ehm?hl?2}K!8&ABK*U)5nl6F)~haKP$YALv6u`; z`snI;gBO3)=yn(_vns#s`nk;rBj)?AFOCt2idf3;#JjZtTZxurJX?(?-729z%v0LZ z0G)6}mQGygsDX(d{xuOJJpM1-{H5i@P1q{ zb{neKC}H-YzkAb)5rtoO(qP;d4Y@9c$8?E_mfX|NHsRtvRRitP!7z*Bsn2*22inDn zykCVN2oSNujcilogzH^}NeNJnhRR<>P6>33M%-S7$`Rr=ZWHSZpsR<$u1B7Wh6eH4 z()c547!(B*+o6<+08|DM9Rql6BLk>I;4l+OvG)XZ3gA<_xE;+DEsn_EBsQJaH&MU8 zM%Nkk?o!)o@oG-5pWqd=ViV};g+DvRG0APvW(eh@y6egtSg+hhAv9vdh3m}=y*8Za z=BvarR6h{oPeahiYBDD!+c3bO9TXKISfQ*}YoX*G5M~DIVjTAa40F9i-u6cXahz3U zmJYq=r9ndR-V6@P{J-*VA5v0CtmD^UyCn56I*}2 zT3qNGn&?)p3Yk;0uSHiYUZJ_g5Lk&7kfv2@>@dIWk0{pE z7Az<^n8l+>9LygU22-$9Pu`f-b7g;F^-IB6o3hbe{K8dZikd2u+D$mLip`y;zV|_7 zcm0mvFm_my^so&1&^XzkV#t62CrO&av62NRkR64&YP+uCZ9l1vhW@eZjzD(af2K^fNm;P=nu@79IDP(O1r5LG%5F z0P07T z@|~<+M;aP3*X!7vbtNRwBs~eZQ5>tE&Icn`mKF! zPyP&Y?gH(9w8}4%ttf+ib(;qqOB6@6Ih}T5LCA6}Ig;FD9S z^Jst5QsX+2Em6zGLFg(@Qv{9gSW7`Bf@THbn5;}=g*>S_-PGk9dBN8Bt zN{{T7?_JLyJe}CQ*>!ku;__)EXg#HJpSxkT3MQ<;bZNJlh4x&LxOFoOc3=El4?$lbFEvEd5HofMfP_ID2kYGa zy;}xMvjQUji9eKy0xCcOL2dPob})^C(12AO1hl9imZ%6apclq8B#>JHXHUr6975&w z1j>(BHUT|9U4B!+z@nw)bvrC z;mSL`)FF^oQPg26>)Q9*-taQOUQL?dMm2C1&;B_*wW5*O6=tm_p=4m02K&$ zK${3Gb=NL!AL<9nNzC`>1F0U%1yi!6u1SK|d`6r}gNvQAdPlQg ztgcnq_Bn6W{*r)jf?V4hUu{{ubuKBbg_ZC7w877$ZhKS3bdB&e-J-+~sI2eu(vM%) z%J7RY>d76?MJ!e0SL1h2{R~^Wn>vo!-?5q*VC_UJWv-j6G5ODv9{(>HT z;2wSC>X%11Q5~MeT73h3o%TOp`vm8c<@eb%2+KJ!Dqo8XZV-*gE4Tzk#R zIsGcBIV`3=nT%gQ6KtB_Zx_*Mhf^ZtZ=t0I6TYrr!YZML@MuxirPR?zO{PDusT<5} zYsM`L8?orQNl=+r2|ltZ75A5Vshz+D}nhdlTOTxr;FkwH_*BYiM3?q75fZ!wh3LYs$n5$N-S7_QBT z37sf7lLcPY0*l>z+=S#8)pDelultxS~TjGn~2+xuunHL_|qt zj5)r>pDWBWgvUTY`t7@I(m*>UK&8gGRk)AAg zU8d3n#@bUZKH(vm2QWH_(W)udxC+(#bpWu+GVEXjX{oh^NaJS;juYx*JHS|DpNb2# z#WrcCYL{ROySU1Nmd7fCms^!;ufuV_M@MEt(wg8r+WmA);SzHKr-O)oNS9$jZ&;kd zgs-{#J-mW%0gQg_O7n)JxrS)L{PZ?FNU33LCC(DX=N3VY zXb{Zfu$iXaP^#-V_qDS3F@*0(f_b>G6n?Y!pq$9Sm)(zV65>jJaaI7uDylFjk?(m zSt|w9a)=E>?kq8cP zxSjTN;r>*cGR(R@4_Z0tV5CChKUw$r(CKf}%m<32Qt_q8Y2GaHtpm45Y3=gnfgomeafPMHxlR;g)!EHtwlO06B>2vu9``1(h;8 zjuJDDIMep4Et$;}!b{otEOs{-m5mfeJikzXQxIbH@3f9VHXi_PZVirvQ1q-=mi4dT5 zVsIk%u5hM&inBvhT4781T>Y0gWw5ZdL6ay7sf~dOA88d4ohKWKt=I9qVZKalz>)Yy z=rap-uaX}Byw^be~knmc*=Mc8FDPuC1)z4%M3_$I)xj90-aEhcHdx+v(x=e z1E#JqnXhcMK8N|p6HD)(;yMAx`?{Njm(>~RRcm#)!Bs*x9R47AeRi(__L&Zx3?PV+ z%jQ>HZw_9!jC={|Zr93zT^EE=t--`A#}z0(0f!FXKf)gb=v3fewdu~nx3>9kLcp)0 z69kdlVMVsvb3#(BV&$}b;jf!W7!9t3}@EMjtgkwXnOxtF_->bq8 z1+fh^a0P;DrIHc{3tHFsOc22>6U%EQm?S_jMq1WHfpnP_*a57Eo5@5h5*kR@J=5io z=&Ku!L5CgFhhps#CM-a@T!G`#DxZGuV1+EZLP?!~G(598GtWa>IeDnQ=Td@an2EYT zlHbGOho8yJ_WA3^+3c@S8)<xOJnCtbHusV2*pvr8kapw!iFOLHVyR;OtwX%NL*jL+jo&_#x+g$7OS0U7&2`DCf% zWa-3YDI2#qRqYO$+HGQS^B@pgfhuK8LKM?W0A+cg%}jNbV(>H?EgYN$d)pAW;F+AX z5##9^>**Tf$=ClKzW+N>-q9L|>CKy4*Xoauw>Nny{$<~HZqOU~x;=iX8zJp`XfAXT zrmUi>I>NuVhyPjcFJBM+-t`2f`Wx#ye$pwx)GH7Vht=qC--f}o*&ol=um?Y}G-(c- z_2F5QIK<@0U7H95^K1L3+#{$aWzkY@8#L2 zCtx8?4p?_a=y5djY1?jd?S#klFsVI3n=hi+Oj%k-`%<-RHldhp6;T$?o1np3j5zp$ z-%YO+S3XN*zU^^()rYF0t~{gqHj&o7{`%d*{piB|U~Lx8Aol^8hX7L?uW4*=GMkYs zzp1QhC1pA*>!GFezIq&0BGAnAl2eg)v~e=G!#1PCR^Qvl)EiaNom6gw+sY6MFohnX@C!vFVgcV2UG@4Hr!QL3d*h z`mLFU7QE%X>$J=JB!Re+v{0xP%DekoqC`48Mw`Og(fYoDNh1@2c~6#-0p}xyscU&@ zV;a{2hhUeZAByKwMv4hZd>uo=LnRojmiz*~@I9 zA}ZB@BRj?93sSg4q@o;tULTbB8EdTGGea;%Rq~h%>%7fT)%-(NiT)&T%~X8Itcy*Y zw)W1el7{~9cTTO&zuw`d|vT(_ek zA}{Pj7r`l8uh~ug)iZJ;%HXWp^Br*O+U-(`x#Nc>^7|SLR%GjLLlKG7oXogHqn)8j zq+W?``1*G7PW@Bn$OAv0jHIM zQaOpp)C^Xq&qpWwpv%q5Zx+y;7PRj}?BP1maS=OL5O5K)_1WIG;o>5#>+@EuQHrrK zf!m*>%E#GWD~pM!E)Q8ObE37D2nN_Ay zAqWIzSLFYa2bfq_2#EJEf!=-{{6Yrl85QyhvsBdo8W+U~`{LxZB8_)y?5>tv*a>;m zlkjOrgI?zZzcAR{Rlf_IKQW@Ra0_K|G_}7NiB0xddyX53qT^SMbx>y9A{s2W|VJ((Sq$E4m#-uPC z>}Ui&nMY)1^KH1j^~F5-9ljQf^V4G0XUpna{AzdJg|D?wRMpH6A33f=6Ez#qjbWh8 zY9y}Nk2@Zpk|a3uugrcrP@Qrb@}78r@H!^*um7ywby-RnxHoGQGi zfGCmfb%j$-CEiG^DDv)g$$ym4i~V$wcKMcx{pSn2NDI4sts^ftG5__hbZUOc_Y)8Z-PB-8L{m*v9;Zy)O_d+IamP33Eto;w}VEY6I24pyJJPpEv_cqW;4WeS5HdL%bxiEE%@xo)x? z_U?V5b&jJVU8xHnpj>AX2Nn{!ZS-M}b0YCAmQfm}6E$c5WI*qzIlM%jUOUkQrY5z- zMFNL1X093abc)-OQ74Gr&l_7FWT&M}j++QsRQq_n%#oMjM%dCxVzj1XG`wMv^K|O# z^(Sw7D|_sHHP<<(IV0I4jUv|7|15h-)wemPxgwn-jZ)YDLGoC3r`E2GXxf`~cDjBG z=h5m-wO$)hbubHE(4ajk0p5&g1|F9HT(98lL&#C>yGSEByD)+|*U%*h)Q}{Gi8dv8#06|XYxNC(pN9-i`pLg=A;_emF>&zXme9s=g)aQXO|XH?!1*M zn#pX2)@DnbFY;^z??y$wfLr!tpE8wF&A(p4?PlWm*u-q50)z+F1*4}y2FGM|+l?La6t4mUxj|6V)I+wk1#TFjq1@5CpJVQpq z4XnvGn5}1S^;%{U6b#AkWJJ?LOB~5&k|OxcvPb8JO!@CpBKR@K%wC!{G{_chL>d=8 zoSIN}UGm3mBXWLv``KJ`H7@2lHDT_!Y>yqvW&BK)n9`D+x))Dh)US*jxP}EEW6~`1 zaxcL;H6s;#YW;C~^{m|cHRK9&%!iE7R^%c*&Amj`7bxmL z8lx@AwiR28ma+Y(834N7=tig2nE}Twla^j4DuHFA?(k=`?7}&7ix+fX2i_kvvc80~ zn^d*?7we_^@I|Hk49syyb)<{7B8|%)POX64zQ$M|DKMH3T`eqU`$M zk3Vwc+*?at|BU|gh?j*>XVU&pID`u5|&t+XG+s4UZkQ`{aF-yBy=YoW<2+hQhgo z=d{oBGwQ|tdrh3QqVQ8eyrpy9=_tqTwS3l;j?~7e@tREv*6%xL!zIR8hMu*-M=YZLf$#ibtlD4xB2dTy^My~TkbcjTsz;nz;Z_l1m%O5aA~WW{ z|LS%1{`SE3Y;Jj@y0zcTH*WNaGW}8ZSA#td{{j}V&6^`kq8s={DP`W0cSO@zXqKR0 zYowWr-qQ-4lZs8ZSys1M8eSRC>#9GuvUhhTuNin3#QBnE=j|WIaNC{Sao#M}yV8vi zhB?0PZTPxAPj7#?Rez;7me^Hm+xg3gAJ*>~);I`mIUc_r}|2eBO4JvJ4Wor7p}6?1*fdPb{M@Mm5kz>#9_yKn}Fpuo!K zk=gqW)`1_s!rM`-hz}g()%^IS_qYQ(GY{H|_ViRuM8)5qaY*F`KCgX|0laf4;Osr+ z zZ2-<1Ybj>ry=wB%#OeUdiE+9`#Py2p!LG*2hZxR@)SJLuvvvK@WnguRj>04QT;@=p ziSLxKh|ITPEFvHIo%1R_G|1-+uM^@{W&cq*)=vd13iD;jjTtAjBg;Dw-Q>TUYZlJSeBkv-?$@oFicPM?|XbM6TTo&Tmo@-5-m{6m`dN8NXC65~W^&+l3KA3kf_>ISBJ zQ^O?*tey6*`J7W3*1Ff$&oqluCJKN*Zq=?)o^xw_e3GeQ_sz^poas!cN^tj2v09=| zXZ7t~m#x5S39{8kdi%0VmHM#I3}{J^PxM{6{cW>KpdA&@VCfI-R#7Bbv@oPItMxlq z{@joy!^e?qhm-@UG$7+BbisOnoYKtt(Cj`z5oEx?SFA#)60E#JJt0S3Aw92)xm9Ip z6`bXI**Ls?hi40rqmIR9d1AryjSsI|9l+M+N@!W9xQk5ayCAD-epT)fh1@C=q}Nk@ zc2eTC;1O?7;aB%ViU2Jua1(PBAgMw>(p&LPXWcH#VtM z#S?fSO?t1?*Me2W7{IDje0uE3dw<`^y-{bG zEtqgz1*$_Hw@XR-U9Uo`!xBr;;uS?_A|@3^Cn3%iL`VGY@Cp)lp@%O%o8AesdS@i@ z|BxXz&qHIIfKUDxI6dH$36iqoZ6fl8?bfdgz(3yvK|@V=8XWCRVXX5v(u`ui#5fgP zQXT88S~VgytH2OJc=S(SnmKc8p|1%h2RUKo^Q8g_7ZLW_4f6kQrrYUkuUpo7)fN^G@s6%AkFF3~ z);1%NPQYGAcQ7qg(0cDyN9r86U5=X3_1?9qA)bIoPXPEWN^Mdb0p1hq}PvRVJ`WrNT9LnNgLo1L^^gPc z&tz9r`pqe(fX`a5{KHKsvB2p%mCwTqtUtwk@3Yn;zi<!uynUmOh%uzZuzs*IIoAd!~*@j|E-idiF^H!10(RRUH*^BuAubU6HI&` z!%lgtn@|*i%2g_khkp-y6D5?sGRV*}~WHgQov^tBEmGgQlN;wu57s#L?1E)iRS)+URCh26* z7KB=yL{vyitM$QmGO=aH^e$`qLe#qN_^n5l>V>fE@V@BV?+QkbW@omhl%%FgT{2}% zn6#{wtZ~AohP_iILwNyn^_L6ZnEh!lFvK>TDxFy3$V}IaC|$}H0*a?rEu8D;C$xvD zBUh0e$8ocM~0yC^rqLyv7$);#CN6=EPQ>tE3Gn9ESALKH4qaY@J*2!C^ z+Z|eYJ7UTCR`Tn$a*a$?yK5jhp?d3ugPj@876+M3E2*?P7C3{K7?f*`u9*k1lJN7?mR|zEiucQzB+%d^Lp>eDKfot?5YSpsP6;IzU z`1U^4xHay;HTF@iYWc$zPrnbCrj}OcKENCJ)1 z*9OaC_ZeCHzm#ntq>Ye-9cqR^9*`F|NZL41in4%Ok7D^-=92}MUeH>xV#C$B)$T$4 z#GHNp{xWoi_hW0ZjLCMYltc`%53$02Yk9UE<6fEg;*=BirV}YPyVb4F+V zQ$FhYUF(>E_Oo)ZJ>P->K}IL1IEqfWD_*+&gJXVWU=&3s8cRA|p*WbPNJTLhL<3YQ z%#s2Ciwcy)UXWrT-iuR=kQ!D{i~w1vSOop1emPk>b`df5-@CAjDt>L#3D%n~85}CZu16hkYkz>gAtSg1)!AH?{FIR;Y5&E95SR;HtX%j&i5CJ`as2`3wBYxJ`D|8a^P7~{Zt27vCO^E zq*N>?*^>ypQ{<(`lppMxU^%T};Vli{Nmw&U5*0|=p~8GL&PtcLfc{H`nB=biFO`>; zxKJOKF?q^6$Y0%ltDvDj8hbIug#wj_ieo2>n#1RdwDc^2O2(zGP}_cDu# z2eCT)A02IXf=716_?y7p78Ov3RAEyo1cSLZ5-@w5XP`hpW zkN~N@eWb7O8t$mV?~!^kN|=vYCG*UJ<}zDJfaWqo3GKy=pzmF*5MwtR@hmBRcD3r| zp*e{}Y|e%{E@*`@=>rl16*OPv2A))*>tYN4jy2a!NWc84 zlJKiV>O7lGKnf|N2I4<(FC%^%_FuR#bFA#Di9tkPocyP!miibQCZvelA8MrY4gow% zP>qc;dyCF5_W1p@{chuKrf)vlm2Dcfdt8MsPS-CW?67E=U zNCNJu*G-d}qtD}$vN!@0sDs+(E*#w9QQ483OFpYPPS-dE8Hnb7A)PzSG z`nYhow#k;YH)5u98~aFcxHiawwKt-}2pnQW7##Yi0VnyT}`aYm? z^^;O@ZTyEYir_3pgx{f00`<0!l$dLSJlJa^8tpJ4HW z@@Pi(;2pNLY*tma#&cB~N&OORbWAZVwh+qqFjdLATJC1K>}lPpH<;+2bOU$khQ}O% zfyQb`N>gNPUDR=3q{Hb3Zpj}PfAA)D#+qS3JkFL|oBvqX9-c>eVdcj0FCk7U}duVxrKF2n5pQ5H?< zVXfYY)%#$S=>_cL{E{uOGj%I>*xJi}`&xG1NM*L|m-K%eUf>)fVHP=M@#BEbKOP%q zY$NT=Wj*t@zj9Zd6ua!bDG*U}S39f0zsMUcwf8wJM&3<6xBSjvIU$8Cc8dBXEo|KX zu8E54Oxl4mq{I8hgqgWvxmlScS>D)nOMcxu7IOGeATai0eW3l{ztjyGh$zu+I7FZOzRw`iU^ z8)|EUHBxJWH{Zf3Y=|mpu{(IGS$whvkxYF3KA6z;>l$RgY7y*x97n+qN!QZhaE`^sHS2rRxwoX8$x~ED!is9`G6RzM|w*8 z)+ey5Jo*OkkMQKVBKTo+{Tk}~Je@vOkTk4aAp`@UEf=a@1tI})MF~=y=F|Tdt~{R~ zbw@PS+vB`HTIwqLvG1}}T)$_B|-x-sf<&WEzjsgl4{VW77^s4==IMpn#w_@U5T zl08+Bolu6|Tj_1p8zBPPK9D&e7lsgAO(QjnRO=m3bS!hmWpUj9)4ovHTRyV^EI)xI z2aHsPwNFPc!!)j~NmDZD_9{t?0-RSG@~aN@f^OBBiD|ct{t3i3?)EEDj|L!B849V= z^?_hDDoJSnGiaVqaQG!V)uBc?(q&*wj%)s%1ka{?b}SF) zn0PS9yrZP))?Ahm#j+5isLhJywg+?DU(Os~kO^zbGE#DPi{>ZpU||v-5|$WdDa$y4 zLgkpp-u;EAzQ70H>4u|d#Nxt=X8LdM%ms9O zeXC4cwcjj#etz<9eO_q_-R*wx*mlv@#z3)~BG6`sR~v2zPS{U5X# zQ>RgQaETuCy60UI%!Nn4dD4vfHbGAYau;QeqTa&j<~>Y(E8g0%gDO6ACjy_%6LMfe z=BaUvd5}$7hs7NL#p@c8){~P(x^y+0pY1tx@w4nR*JjII6E#k!z+(!L4`ZHR+Qap=ZcVwdwz%}1c_9q_$7P^Xkm42V0Dois z@$OoSSq<6uD1sqf?*iT-b1K|Jp2j+BC)=ML_YUmMjL&-Bw&Kfi@*+tZDt`L~=g50> zqN&@?-rEimx75{J_jwjemF4br{Ls!8$K6=ZSM140Rmi~jU4iV|;_Yzs%L2ri&f{sd z8J`4QPc#09qlP;@w`*P`plRj+ok~(5O|^mvcF~Y9SfhaDKZL?68X+`DiYBB*bfVzE zf+}<%cGiIKt+^hP5#< zdwJ^BHkik4F_qxhkJGE}-8J6m`b#qZ!?A9pZ{U4jj48o!FuZYDCf7D!-#WJOmdKga z21XGcJ8Nt*o`&Glk77~mEY2gEaZ*N!@p4h@&q$!nQ_1%dXkR`h%zzy(`okp!U~<@5 z`YeSn+7N%VipFQJAr@?$0{ML-)}0I1&Zou+3&#nil5i-Doxebmt+Nvo;&Y7nr0>W%8}DELf3oFJy?&$(8sDB^bbYu;tzTqB{GEp6;Pgsy?x8A)$S zL>G+{F;+D$33z{$jW7H1^c2Ev)x0_k5uu6{!ox(!zdwJ3Rj1>7o(6&Do5WX5>Bxg6qP1D=O? z5Q`wOr@v~=dG=90Y^v}a+zwe`B4hi~cVRSjUsdFvO{6SfN&#O15~%PPHcTG8Rxb=z zFJ$h?uK_AmM{G|as^-EMpOF+R8tzeQRzp2DoJ$@#V7Sf(^USv$B(R)gnI0KzrL&$V zB)R*ZDVkgp2FmR#+U{51+Xx1+fp3Q{v`lXaH5|Adf{~dzj}uqxl3lVI!?=fb*2-Ju zzZ3(LezM-VxPKXo3c<&9rpmT9sd;(O12o2OP;(i6hLBxijD>dH@Nzw~92XDWi;FAb zt{x9nNGfv(mB@uY$zMI*x;9*k}|Dle;U17F05JQ>yHprz+y$g`4 zJ=P6a4A<@0p$I23bYdjOW?pj^r!(jxlN}DhjBgQa;-?@kz7Gt+C(KA8!k$sx`nsbw;0r@5GAEb?ERqIEv1o8zDl!|3j!#2 z7Zn?}}V2arw_fV8U^8Qiq0dqd0Sf4>Szqba+I$ov!PF?HGH>@DBq zJC6e8)n!+E`iFaln(L2I3X4(b!30>2yLGM~XFrM`#W#`p#x#+?WS^&O6+AGX;YN*C zhi9X+=O@mDIo>hKx+<0&Yy8nG$SREe$SV?5;}3#P7DV&vS9feus#g9@i8> zJV0CsN>>6vt8_yEnFWE!4`D^P9elzn-RMAOQ6TbE5s0+NQ1V=($dDa4=Eq+=yuHbA z4l5bAYZ~^@?}b-I3V&wu25^Q9sQQAqn=9-w=Ew}FN=DR>4J^qMR#heyQR%f{JCgW0 zwOUm0RJSkP)mp-6Dn2ZDteNkUgz>WWXxyc29$hBLMne1(l%^Ski)<|RMO)aEj*Jz1 z_h?QXI~LOCi!aKiUN++d!R2v5gCsub!~Je)fh*UZH~b}o#P{Qs3W*DDR=-}OP0x$W zD`TG^P^$AJMcjfR4~H$@fpQMC2F0P2pY z*ALX~FRmct4J;j*RKo>>ryZEDet<~Z1nv7^+B15g_Eo)0rlHNQqM<3ysv@Jg&D)H< znz%i#etqmX6E>EACx3K@>*^ie#NVSsyk3S>ZwYQv9m@ex0@(_)K7auVV>zn5EwAbA z1>U>vzda&aOZ%|EYTu0L;UvrDV|Yw@#m~08YBSiNby()L0OWE7j+CUDPs++$XXk&z z_=$X>DWlD5AB{*O$yGT_@-4TE1JkTx715p3&wth<9B!A5zs!U(6?Jd(sAM4(+*Ix0 zs(LgskjmMBNp*UT&V!a3t^5#?#FOOyDan#2GHmF9jFr)>XLG22@`tz+dkugPg-{G$ zglcTzN0Jdvq)w>D`yJXlT)42b$>yh^RRW0+$e_xsK!X(Xb{*LIY^9?Dm1PR;ZnNS` zo-uB3T32CgkVLi?bZSLmt+|-b@HPWS;$2we>d1U=>PRY-k6fY=n!F_Kv!O>HG{qXSY_0jWH?)Z%gS*~#5zaP1^SG{%Q<7eBm>gIS)PH?_)YY2`Qy=%*aE*!*ky+8_vDCDyTS!}b zAvB7o(viyLs7p@fU?DV>r*K1#=2D$azejU4cTdycyYa^mIfROtKAu&d{bKU=HkE0?SmbfGrgUH8}+ zo4j}2xEa`LJ6m+fJEpit(vJNI=j0~`&gHE?O@`08_o_k-}O<1YZJK0^|pE?G$bOUydF(nRDVbQ z6K`&yPtE6X_;t8;K|_vtUxAP~@3`9mln;*O<4^&$hXkRWy|4lHzBgM4Zd`C6{t@d#0G!0yg0<~2)fPk}KYC{;EHnz*=#bPgL~G&nl_J$T zNbmCs2N4*2fe%2~gPx!-!J_k$ z%N0!Y1Jgsu)(z`UP;UqR(Ex%M4tn)puZjH1NlFNO`7xVMfhTZue(zW5)sdz3lO9y* zwuzQZ>RdpcJQC%}G`%3Fj{v+gk(gXx#sq2g95L7jQ7q&MkJ>77M-SCAGUp-6{>4pJA9UP1`HcLF5jAJjeT zmUGT`_B-G2e_hXY=brn0=6#=;OlIb-*)x44GxTGQ%phKyinOqX~&+F6df%OR0Qe}2^-ZvjBp1n+J zSmALWx`KL4y2Hw}#CLa){IF2+`Uu`>3%w_mY}dOL_MtPUzAKK8mgKYH9@GQ(xiUf- zD*&$v+%UtBDpOW-0DZPGE~0#Jvu~5p474w;n|t<=#1&&)*Nre0hnJ-NuGd0SzAek} zaeXk78;Y)4hhaXs4yM>jpRXI$oum2nkE5Jil=_Wo2SA53AcoOX!m)>@8be(k%=W`X zTcLPw#U$~0-(D=~G3W3~f=MvX8v){8E@W=irsbE1Y5}rI9*pv-jBwv#&a=F?{XtPc4}SYkIJ;zm4u8* z`hvAgZv4}Q6VUu_gLfc=+zVWY-xlssru%i_o}t0tE!^XUUgdXl7xH7prMpfV> z^Iow)g%a-vOMbVA55*GxNv0Ti&P{sLW_7DmsXw#T zcj+#4jQ4(yNG^JBQ}n)}@GVE-TQ{y13$DlXiDp*-X1o{Hst~-Rb}K^zp92J;6M;oh zKx6ko9j;^Z_32JCRiX=GjC+irv8!VZ6k|34>oeiSd2`k}wYmhLq+pvoxb8{q=)+n~ z0#IVCja1NY0{vG(FSE6jZ(g&>38*d#xS=#cRbU;h*BGdm(Z;C>r_>Q`)6Fp99Vnx= z)Q%J^>7W~(C$e!0slv*4kyq(_0*I>PTiouBE8$LkG?t*V

    msZ%O|+*Z+LS;;x4v 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%0AU9xwl*jMUcB+ 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 NDMp1hFB${m{{V&DCTjoy diff --git a/graphdoc/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 b/graphdoc/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 deleted file mode 100644 index c4e3d804b57b625b16a36d767bfca6bbf63d414e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193308 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

    l?s7}*4vp!2W|88=L^r| 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

    nR1?qM=|aYy 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

    F}woT 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"bt0}@AlIHaMn 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 diff --git a/graphdoc/docs/_build/html/_static/css/fonts/lato-bold.woff2 b/graphdoc/docs/_build/html/_static/css/fonts/lato-bold.woff2 deleted file mode 100644 index bb195043cfc07fa52741c6144d7378b5ba8be4c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184912 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

    x{o9f|7gEmo2*wv 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 z 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≶M9Zv|5`G?V+t`dH%WEMXqpk;_3Hk#c)5bow}^>GHdOg=@5pYx=49b13Ly zrJynzDRebu8rnRSaDCBo@|9g53n?-Toj%;)7@=UY|Noy}Ma{<^CTZW`I9PGat{6t2 zaDw4J3oUfqrNwG{*q4kXjQO#)d%E?I`6unq0@g?R`EPa45Y|xpiRX?D^@^QqfPjrp z`1!tA9;wNGs_VH%HtUBo8*1_;v~g)avtfdTTKYQ+w|_T@R1|@!z4MWbhw@XQ#{r8n zFBZwGL~*S&Epds65DN=S9LDmC%OD``N?Ja3mq@-KYHmwkg<5GJXlu`C1U~hF;}GUt zEV_svDDRB0pxY;h0iVB6!+t9MoPjoUN2{tnNvmp71!_;3|F6OefCDX3EgVYSHa&Y~ zU}M_~aPglu-?Am;VW9ar%IVbGkq@`{Tq5wAt!;iU^4x0?c1udN{X&%ux4V&|KJ4W8 z^-G%6%-Mk6r|NGgPt?6Gz6|&!zRxhaV4(F`GZ8rK4j__!PX?Q7^;*CQ1mh5%DvR6C z?e!IxGMT8~xw^^9NiPO6=pQ@SRODn~Fsq8jD|VmScW#=CFmzog>dWa9ISWyD>bX6* zxnZ#2TwN0;af`pj^X|5h-UR+^#wtJ!B@tKiK!pf5VjK5!fZLt zzX!?qwZ#;g@k9fI%Zc#zkaZg@VAO57d!5O3Ue&0UhOx8iALeb!OI zRvYFgz{G^aMMxIXA9Q8%Ks(ns{Ng8LwsDMRXV9_!HbeTZg#-D*^A&&kWc>8s7s|rI z=ynSoO>Z_is~m>%blt}gX#It_>e2=$ntV|mjceXzzfgYM^uWLH4|qn@T1Vx$y+(mB zr_oTl_0pJ8ZR}4L)pN;gX0*r7gHMr7oprWF%6?*dA?da-61JtJNHWwP^#36TIN#Kl zHX65H`VqI9GB?_ee-?H!Yb?FpyYadu!+UaImNKBnpF_sZf6ay)B7}^R1hodXNP?eK z4UhCNG=>^Ra(w)t-DekO(;#W^pCZ0-I00f84I3?O?7O zB%x)J$UIIl{lRxlFHDbkes}4Xh27aeZ@lufb-e26$_f|NxU&YtVUJG#2x>BxrM_VU z1LCx!(BL?8gDF{Vq$J)xNc>yL)$=)7I*g|%)(&0-;j8CsUSvGa_^S6DVMpH zb8v0T>G{!ohHICj*>1fftNM+zZtws0KCZLv(IK>C_QT1EH@fD(8$2iPv~!>Y4cV!P zSZxtr!>L43HPE+4<>ftO;-5eywKK$aj&E__@NZF$Ub2O545&GURXRcHZf+@4Q*sxY zWp376swn?@b?YH5czxG41HZOjt)n5ymnfWVn}~l0v!W9f09Qb$zl@4>j!2BD$PIWy zG%tHq1co&qIS~ddbB3;u@9Dn~xdsYnr5s8^`W*i3m@VDEnOB&F?o#)Rs5v1eUah$w>#9 z(>0sd(bH1S1!0KMO_Fm9-(30B*tAvEi!I8bj@kN6Z10~`=5`eh*Oh@TSgc~GARo=W z<9@k$y19A1xpq3jbDRG4LD38!4XW&4?>FThiiaoIiVSTRo?|YzPPb-muv!>myEIOW zt#-bt4&U((ZdDWewL`sy(~|m2`BN@QF+Q{|G9ZCrd6ta$KC*E*TQ_G)_3NXw*H*CY zbEL^@$wN>XGaLNe4bu&0*GJMUg5zS=CN)LQyqHShcMq=mcw_4h9+%ozHC=V~`$%?N z`DWW#&TppMgR}4%!g!nK9J8-_y1Mk=F&oUrC@E68`W@5@I(HpHbiw(p1ld9~Keub^ z`qq-^lE(GMES@?`16xSt_yAA?b$A0;omip zd;&xiYAZP+=TTDO@|)ZHN*1!_{_wQ@i@zy5-UG{`HCbB7dqN5AgmRL@R~5 z-KAmZe7J3gow^U;9@e_R+QBj&j{H=={FCM3!&hwmwI9#NDh>OjBmRdo%0A!wRKaXY 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

    TE9 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 Aod5s; diff --git a/graphdoc/docs/_build/doctrees/graphdoc.modules.doctree b/graphdoc/docs/_build/doctrees/graphdoc.modules.doctree deleted file mode 100644 index 6774075ee252eaeb114ad2b1db1908c8cc9f96c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96939 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 Vg`oB5GDHH$z diff --git a/graphdoc/docs/_build/doctrees/graphdoc.prompts.doctree b/graphdoc/docs/_build/doctrees/graphdoc.prompts.doctree deleted file mode 100644 index 29aa5858481b85b8e5ee37dc32ce44315d0cac57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465270 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 diff --git a/graphdoc/docs/_build/doctrees/graphdoc.train.doctree b/graphdoc/docs/_build/doctrees/graphdoc.train.doctree deleted file mode 100644 index 1a45d25b9b7b8c2566d761098f56eb2e3e6359f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335370 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 G8U7zwd19Ub diff --git a/graphdoc/docs/_build/doctrees/index.doctree b/graphdoc/docs/_build/doctrees/index.doctree deleted file mode 100644 index 39c59ee1047d1ab869ba5a0bafba4444182f6586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10284 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 Lx#`k`PjCJW7E!gS diff --git a/graphdoc/docs/_build/doctrees/links.doctree b/graphdoc/docs/_build/doctrees/links.doctree deleted file mode 100644 index 8cde455777e471881c01e4a3ab437e32af10d1c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4459 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

    TE9 z>QvVr#Ma4cSpc()j-=sgJykeeL*f)4biESVd1g}FK!c!y9s-I_(BnNc6e{S!p=dNz zFXf3@o2~cs+)2XLRjXlhSyvuJJo|hY8PBKvGh>iBd6U=~zmDiJ^sSDbbsVEHbf@r} zG4!4+S}uk=R*?7cws2=$;#A*ar1Xl2KS^Ri##jWDsPhc08AqJzuOuX$)2XC+yw1fr zY3Pn1&3-*)ZFzY`$4^a7dfyB7S zi_T3&E#Vbfjg9=hLMMl^g{!dN8v`-ZKjD>umW3pbj2OT)heRnArXq$^ghq}S5w}*@siTGq^Z`aGJvw<=k^ye-^9S z7XSI((3LJ+@jS+%iYfVVY~(*B_k@!*;y_J!;L&)di2OjR;XJ{;;$LLsphqr(6gcuW z6FG%f{E1Z931a^c8~GD^@94QCzUTL|hX3q6M19T&H$pT2;HJ0~E^*fX0eWQ$(Qtg@ zQ(a`;h?!13C1JDPV787In^q7sp{GDpdJprkF58HDX`H7R&Em1rG!9Bus>whPKsXYm zHR1LN+6#O5iYeB(hHv#*s)K4U2OmVxtxuiJPV3<-SZd z1pgyoSvK9})EBXCAZH})QM@p0J0YxU&aDKGBCq81D6*fFt{M!nOYc!slnFLtH?~J{ zBAnBD9f@DOJL+m^=jmO1D-DA3E($0<-o;yJD3o`RL(#m8+0JR*MUFt%y2i4$5-h0Z zbj(JDlg(p6#K+jmIjxU!F8R>!esc8WIV}Oj%n){;(|VMKLdil3Tz*7Dp=3coaeCtH zb6US8!DME5JI`rxbWEcmX;PcDbu@Gz^W}iN9eT3sn&-5f>Tsv|nD>8UCZp4uo#WzT z-Uo&j(WUNFSKTBQq<>UEaZ0ws$J|Ro(m9<^oI3cd)gSF$keTCbZ1Gif&7Ia~{5j}bcdD@2Z~KfnaSTLbPaS+S z3x)zfbWt;4Ql}1nk_GIKQV=$H7%KZa=7OI=^(=&qKXveI78E@xOP)HI`6hD`#7iP7 zRUx!9pb=$Q>Oz~AwzHw{EVPY1b#QnV3^{2rQBgm2fKPRe;fka<>Li~!up7mjFX7VG z8QcP+p}3&=Fj232`Y_+jsL{1Skxh55Mg4kDKBY$GI7&Upj_Yhl9AdaYsbKQFz;}*_v{kQ-=)n|CRsL4mH z*73@;6$Im>CJBh@Q4c+`Y_YB_46u+9gE=fTT3XQh-a!#`18ar`jkEj;-3Q z*&*w|8(3EDHVOh%p46P(H(IL!@&(b?n&wRTWUw+^8e7xc19DLskd06uYwp!w?Hg@W z2J1bL$%HiPA8SrqUmP5TdkAkD<5w3pr&UKABcqM6HRU;Lnlm<)hD-2PzG@A6n$cfu zl{>&AkVz)y8nOQPO@~ zHK{qPUg~QMj}8^K4peJHWAJ2l9d1V)DfCr`h8SnpG&}i|(qM@_DO^@*lnZ@>#d;kE z4-iFz@WISl3GY5F43@T(fPA|*JIcku@axp(UZt(@?nc0-FZ29Uq6gh-8D*PLA$1{xJg!+q6$s5RD{G1?eda{Q8d1wJ2S{#Yp0 zYSmhy3^zLtmTEw89BN+!gp^ZS>t!nIWvtm{{bF?y9DE(v;InzZY7DaVLFNxu)Zqaf-)@qYNedue#AIj>ggtJeAp{iP9*6aa(QRjz4HgE=(- zXaYql{UEEQfy!2hCpKpnM;q0Gdeq##0^&8Re{^W15Q-oWmOX$QtV^}w;vjZ7hdp7! zjqF#CM(U-}{%T<>#4Fb{=a#mPRO_XJ-jYd4U!$<4Qm=3kom1$q)QcMj5fL%U>2hko zG@A*?)L}BPc?O-%64eR=l|eub6vur01VHK~b`vo027BuVmhV|BUKV}@5#0;t7f8jR;c>lZWLu+L z9qy^tHZ2`%?u#|q0H9`}Q5pjFG=Lp@!1E;wk31UaIlDH{XLXNHRQE5E-NR%pqR4J8 z)p{zW#sGr>3SeouF*FFkW;BW$VHWi_%44hcXm){24i&=b86r@qgQ6>qZEw!4Z-cz1 zt%Y)BQ+W{nKz^qTR#Eh4)`yBP(Jmc@d0huW&12vB*TP`6uP8{{)mMhAz59Uie7*sd z8402F=Ft%VF&jqLs5F57Tn}sq>8bWrh6g|fq+-|`RYiStqgAgmgu)B24dt_O3e!p; zGea9o{V;{M!4S%&QUieO+XuBa7fM6L%3z_`-;aux4SO%_8P#vSG&sQ3+Vu}KtHF9}sFz^%{*5&bCSzFoaMNkI19TsnMG^Zd?)Ib~} zi_@`3!3O9AO_Bn3)@ie(Q`VEj(^Sv ze?YtADJaUdaNRw%69?-r-@s5+qk`v)>b7|=G2xW;OeK3t~Kw<;QKVSZG@aoAx zt0ETDra`eM7O&a^iUJmQ%z)x!Sp37DP`m?+fjLlY#^Tj`K~cowo_(RX7mJSlp_q%s zs!k}*#o|i`L-7?X9>_uQAQp^A1!UQkSiByH5_7dOtKdb_;dYV~^v7^KLGf31?Jfu~ zV!LpNIi$%wAP|U^RQYxffEV~Sf6wL-7tQ z?ruWy87z9<0>#l-yyONbj>V#QBNPKzoO=@#>#?}_9Z>XP@!Y$hnEY-ievQRbSS-5* ziWOM=2#cR%G50no_Qm4E?}Oq_EFOM86yL()jUR;KdMrNrAt*kM#i{=c#aUQv{s70ekk_GV$B0ktixi*SD^SZ7Dqk=#W7gy|L;(AVey}jK=DH?KJ!f|?!#i{ zx1rbzi>}9@I1G!|JPyU{v3T@9p?D07_kS0P4`Xru_o3K;#eGj{%a`qz+&ESp*R4GPr?!!+>6C4ehD#+sm8zUWBD*GSe;x@2!E| z<6sW9S+&LzvGCx|4fZ!V*i?u|VGeidcFGF+2riq05M$ZA8}w zM*=#&Q z|9^Ye0&PcCo&zKx2^1PYsE7>bib-e)xq0}wsO4f367wVp5YTWq_uO;unUnLloCirj z6tr5DD^|I>Kw;TswWv#RwZ3YtwYpHNZN=7FZ52?cy3ks!t&f6_e*b>Xo-=c1X3r$# zz+|oLbI#o}|Lpnp-v9nz``^dGt4VZg&!J+5ihKGNxhEXeFW8`ZpC46vyM9z_^w&OA zYoEd05>SX!!mbew=pq10Bx~1DaWfTBfNl}PlSa#RW&9SVP52jz+PO ziZ9JaaX%FgE zyQp~O$tYe!#mS3NoJPehRJ@Ujd8eRQK*a$nZlvNTRQ!yJ>ZvFiRNVV?6d$Hy=jkY} zpyIF3K=BzW);t5n3#jcp9y$lbe^BwU5fq=KV&$_@tfj&^7sa_$ zoctUVr%^F)35o?&{Dg|1QSt4iD85U@HF506icXhI~DJwV)1Ger&Dq98WfjM zanEy6e1M9($58w!6~BEUiUlu1arH$gCaJjKViaqsIB`9S#Z>%iBZ{Lpp;)*T#Yt3r zZaa#C!pNgM#P&`J(4|^zn zLdE*)QM{B2I#;en=g!qAU22Wesn%%QYmK(W)+jisM!`$9E-l9q3`%H@PoI6(WzBuf z*8Zl$l}o0Kk2wXdbr)8MZGu>5evSFw@nz5mS^FNtrN-JvE$U|tP5P^14adxiwQs@t zojbShBvS&nVKa?gE_mR?bQ?1P^kz@=T9uf(eqz~$ZHnw9V6XfyWIUADaeIpQFZ?=K zSzv`~Otk9CP{l4i)%Qnr_3;M9IHL{>P(3n;FYPRIO7(hce`RvHvwF4D>CNEO zz{;c&t#&A)58rf`Cj0PBciR%yOVg^?TgYA);3gOuj)(D?ONmAHo*v0^&*O{c&0Dbo zP8zod*}E|HbY!1 zUbb@+-5~yr$m9CT`^YRpl`uBqCL$kB9R^}D8-+b$*ZQ5?#<#9_IQ5>mno;h;n#LPX zn;7|1QGZ>f9s0BxxHvWxoic@mRRkuD##;aZEt$Ib=y>x%Y+3(it^e`lMhHin`foC^LGdRJ|?JQF*UM&H5g4-vKAyFJ9e+sYH{#LaE&01SOCdSZ&hX`ZRP|F~Uxd$R%z-P723gF1 zVrYt|avB0rXDKIzhr&fL-D)4y47qh%*IGOC{o=)P)s{%{D!ONU)<1#jEnn z2Thtvm=!ch6reC%R_c7VHGAlRc>iL~I!2q%v-re0ZMus(i%mD8Lk!hFs~LUFybczl zF(>9DIDK(f)FU{6SONF|=(c-N9YFx<&M3iMN}VD)!tKxyN8hy2@%3_#97OyT*#p=y zar@a+ER*_zY0;pmgZ@{YT0&|9Hs_Wt^l$*#Le;PQ8l(jS54g5h0+T)%qiZ=fqOoFv zgtS#XNi&5@`Ezzevjl>OrX;&p_Cd18a!w#7Z;V&tm+;5Zz5SdZ>P6)su;Bvc?2md< z&H`v~Sh4^XdfKIk{xRT%kiWqGP;bBV6#<(Rec&U6owBfg9f57GiU5vUp%5(x$&Bjb3<5Q8Uf&($K{i*%Hx?nAyF zCY2Gzl$WyFUg4^xB&JPc7blPqw9 z9tyE~)!Kz3mtd|2h>=&6f_<(A+jdACGD zkJ?4#k2teN9tOmc{`4pcARQ2jDg!&DbE~!(H_8x%W3-El5z;Xo4}q?T>7W|Kbespr zSHDXyYwynJ=ppj%7=*QVXD`8+G_vL@+ypen@gd_jXYcg;a%!DclTDl()buGZTStLg z1eW{$%uOJu9QD@t%onI$?WqniIfy5)2izz%%_F&mY7*=NqzNVgbp$5Chv#QB2^b+g z3El;|ViHgdCc(lulVGdzMq0W!M@QH8&w@)8)f7HXld_%$uOlFnPJ`FrCf_vJa}naD z{WC#%HHFn(4SexC)E!5*u`C>KkuEmXB4hav_%Y&S=ZqU5WhZG*1`ay2C5ACRNlUn( zWaG3mjG#XET!I#)aO4RHqRgNXE;~-eYw)zy$~mQs+;AG+V24`*h@*Tn0dvOq6DAN0 z*#S;G(d!xc?>KzPTxL<8I!-g(Czm0LQQkY=lt2YN!&XFj^mr=_b`j>fRjrEh-RYr< zk(P4;%pHz$1SeqlCUxo=SO>Z9RIeFRIN--f7LGnKoJ91Oy-SbN$yjSQuwrhy02dtv z|0lpqxTz5EAiY~GZcqyBxh$olemFx64{YLno|YkI5$t5P#9)pIhDHj{hcQxf4jPw( zO0LFb2I(p2kBHFl=CV{@gq9lNxh%zJz5*ndr3Qo_A6Z%z>$6;zVhnNkWhrG^oJ(d} zB;yuLi;IrS$h61^Y186k$12kz)xfm4ERJb$voZo&nigNsZ&=)}Xr?eMdg*Gj;)iU^ ziXZ4VE6#qzZ&M7it_K9b!4h7eoH58q!;-aBTb=IM+LbF;7Cct;zWc<62D-U4*>IbK zE|y_Sbg}x*Sjdg?xY*%ryqY+lN;Yw*`!I3Nfg#x5F?FnVOff=w;+zb+!X{5Om^idI z_Ru?~4)?aBZ`e$ouk}xzJy*ef=bt^wBF~3@+89!4q)lDqMF0!AYA#p{&hSX2cbb(ujEI) z!NNiKn*eq+0!ON!9R)4sTo0#J)w4&Zuw1I?LOPA-A1p9+lxXc@vE%DnWn(iABOBjI zSRgwSTkm;vxvy2ciKZRM@I)x3(0G{vKj1Wp;pHoE9g`Zyjh{j7GMi;*o{}v^v%+0| z1;3>q?P5Fiyj`e`DgD-dXMi`az=K+`3l>yqW1E+#ZXRuuk&8{(-d912e0JfqIBIeH zdV-uV*9(fWMe>uAi!kZSiwlND3KTa4?03{arnE}Qr;bE=a^#g!pP?SVkZpTJPX(>) z$=QY8UmS(Btk2nnZx?UQF67Vl~Y89aSCyyN8S!082Z}6sl*f-4Vlrm16f0vLRL&CA7U5;M}dXN zgsg|ncT$}$S%61PRFjWmW=s@Au2n?T9RXkPs?a0&SXVa;a&YperVJE|2AIc02*uFX zZr%j@c!=nyM{@~-J7fg=;b#%jz?Uye*tZ@WfRlc(#W8P04>&p8je)0TtZ#-GKl5dY z^Eiu4LcH_yWl0QAHQe%Li86Q?vrM^(g7OO~;C#0jKl5ctCMeS$k>@8w{iiRTZUArs0C~Ubo8M3QCAdk7cL(_$!e{ zs#q^g;P@>%5USDY;L26H0UQQgGl2uXkmtQLGvm2%jqgG_>I*rjpveSL!MPI?rEa;3 zI!d%)aLuKJKC~KDg3LBPxFo5Ong(W!D!YTN?HgQ&`ilrI1xUYiz zd@SSd#tp@F0bTy#7j>3GAQOREacW?xeG^H$6=WSvTO2GiQ9qCI>XsM3T2f zeL^*&Z7mKGzct(rr4l7ozEsBXZyj~UlHRBhMNZa3ZP>nU`xwjNSvrVRw)-g4ClY|p z^d{BuNrigNc@~GYtt! zMQ&-Nr!^_FN}MfMDZ5i{xhQkkdYdmOmyqsHR3m92oy<^j7pP#D}iU7M((JlS|_qK2l4 zq>8eIf}%ETqJ`{orqzmDELta0E*|37>mZkT7fIjSEPtX%4xvF(-;CE|H?h~VZyins zX;FLx9SDgmy3I+4l9=GTf=X5vI}pE+nF4{cKFoRRxDkLZlG$qIor;toT_p2=Ys^`> zVl7KAX3f?*``YRxMOL8S#Z! zZq^yU)7t2~O-B1-gd+{I*O}BR4SF{Fe zvbmyVaG=02%v{mp7(GGuARUGBhGb4ja*M$!`N^keOiNY zc?9{`20Cj9=epxeIh^0#!J&)%F!z!(Q7<+3p{7~6(CIZP*r814Y4@6La}uW^se?$< zkkFpS_t&kyWX*^d?5q8yYhPKm}0e3 z$AD!~Tw{(rcTrx!KS5JC59tnv-$6!wI9hB>0^%vl9es|a4w~pxDmaaB%__4A{lEB& z($(tJ$TmFetp?H+u(K-F8HFm{YrbmaF+qr`$xYSqgO_qsb#AKmg)BW~Rt*&o{AFk$ z2{Im#!UEO%GxvhZ+f-n@`NWgn3J%`+t_%ifKM$wmtij@BRSjmG&DZ5E1w=pLz( z%Xoz3@!h;rV`-nFd4`-6*2e~b>BFaaD^n`jNnX{|w8P$#jc4Ok(|h>kt72ZrxaYud z>Vm9g@ziKxXh5|ZEQ3O-3r0*e$b|+~OLB1C$56Zrei;g+3qmU{F#L3psq)QnTpFr? z>)mnrlBv5O`rAnQ{W`pB@+A`+Zne)bUor#6-bmCorhLf^Ku!HAwOyLe)OgZCzGOZH zmP}mPCIjUXPuVk>bS&X~pYN&=rao)j;t&Jy7vFLW83(w9%%X&$Ouwf}`)>U<5}W zyhLG1HKD=LM<|w;+hDmXD=dEv@H~O$Z``b~q?%#F@>&}#n^|G`yITw_KZ&1Wj#JIB zVL5AqD(0EHA!NVM#T^hUEh`SpIufSZ*sBSbk$tVM#T^hUG79u>4t8SRPw5u>9;k zg(cMt8+f@OAjRkY?x-pb)$T(Uh`7-%_Lp z53ScIY_dUNLxw0E=Rx7?c=Z^9$AuTeJhBgaWm?FbXt|9w6%7sFqz!zfxbOw;V?Ev+ zP08V_c;?Pb3kh#0>PXk-c2TyF9ghYl1vns*tJ!hctXjCcUBUc9qFonRG%1Vgq}wdD z4?5k-fvz)ADVHeYo7-K|aXKxhQ$=1&H4~=~+0!1r=}zzSbf>(^rc+)Kw^NQ1GkbRa zrfnOx&&k=Gx?56>NHO74(a-?C!v?@R;sO{rsuzZi>OR)EEe4AS<$Uou6BaJc1qx!PTeUNUfiqKakxU7oKmT1Xtm{iHt_vfT=)XV^fN=p zbf4O?`OFx4OPcIjLbXXlLSuQK4VIrth2^mt%k~Y1jj;GCWgVj$SjQF&6P6FzVEL`A zuzUpId6uf$%?eAZ88$2*v%&Hgsj&3eu9v;q!1AisC@iTartLb-1kH4gpLUytTC^B9 z#Zrp``K2cb-_F|&EWhN92{Mxq^mQ*urSU&Ad7Fxgp++?o>c-HZse#gM_JC7(V zsb<))9I?UDNrk1yYSR3^f#ppN|9>kisRmfai5om(tR`== z!E!bgmd9x;^Mk)Muzbto3QMX1mdD1hGCu{ZChxcDrF-J`Qk2!?tX~_w^uVuFFHsG8 zDbA{vK@iF3Y*6@YTogha&h&~hlICfidEbx1aTu%bz2&HRwR=zu^1Y{u5ft|4R5Y}c z>DxAtJ`fkuKogQDOfza=#fdY#Mj0{PX1UdvfhQFCFL87Zg3)8Z93+caXTh(#wX~Q&5JPB@1wE)P@DmO#H@Bt|6>bH>lEB%uW5O-gLjUB zklrJG@e5^RYE%=Gj~+2tj@n?kA{CY%?ck^v8CZVn4-}SE11yJX|Kt`MEH`C^ zSblI^VM#T^hUK&kmXoQl^k@g87aLgKxK3e7HNbMHw1ZdMVEL-7u>8$N1It^sC@iUF z*s#3Y2Ftgn!qUSpzp&lFa_bI-CDjbu9REujEI*nRmT$e%!19)>6qZyIily)H!Y%6D zh(a01`kp^QTj~nVq}wLp^}5Q~!ba(U+vqi%QK!_N?lo`*VPKsQrNKE7x`ipfTO3h$?rO!D7F?1d}u!~VBo zukDJ1DYkCeux0xd#oar{U$S}Awo8ha?c5}D^x%^pjwNq%sB#K>>bCk0RAx`}Q14XQ z%~GQh_K02UcWxWsx?WJno;!B6ipk)OrHy;6vCu=>*w436Hp~AmGo?;vKeqCPJZ;DL zu3cAb-?>gaOv)qfXI-m& zNu^oAsokyi4t|SC&-~>*K%`uCaV%k9kQd^_aZM)?$ho4h!(hmP6hNgHbry&r{;>dIJ z!A5>Eb)trN)hTomP7%PY*nmk#lSGeIcGNhVZB4`%n?yr@#hi7FHlJtliF4X?7j+h? z@(rRx=b`v#HKUK2*MSjW45#76YCoqh?uvQ@2e2pyK)2nigo2_gbZ3;BExbWnjybnO zV{Vd00gn18_v$5BG1x1z5#}t#OYUb=v0TE~+%JwdFV(TzS9EHrD~K&y=-~jeg{oh9 z!^fP-R=F5_)}d~${>HH}CrC(J)sr++xU^TQyWN93qFI9E+w5N12gx2A_egX7a`a6M z+(1qc^`deR*l+=J_D4NQ=NuNxBtPcIe3iamdenjbQKer1>kSSh-q3!i1@kTkn{UF4osY7bup6Fy-MUTUPryilv}SCE07Ql7AGs6a@(CD z>nj9;fo##hkVr7V7#YV)Mjm+80fvnd??pP5M)#p#u8JokiYYH;wZRf19mn2wNd_N)%&>@tawB80Vo zNiWO_ZXQ!hZS9eWR@B$XhlR7SfQKnU10II76_X{TwAy%(itInd$)c~Q=NWnf= z10ZVWY5-F{_(X*60YPxO)jp_oj$8)Vjdj(_T5~lZR|B9BF-=LyB)J-(khgL* zAXfwY1H|*2OMAH*pxB8}F|-t)s{vByuvG)NXQ6s#?K|)hBuHIPE(N5nKk4Q0!c0`E zXH$-obN0?vNAUk#{9l6q%l6LAE~rth~?}=fvclys2uXS2YHgP=XiZdGt z&Uht@z;ZRK3hd9^1cJ&@Z;j7JXEIcmjKXI?44&ZlRh43*Ve*5>Q8A5`6UP zj3xmiq$k0fdqR^@)Q^l6TcuI+bfUaF|3aB7;A^)xsaxF?EGD z274|#et=g~Sl!jY7r&heSo4d*l;l}{VUEtm@fPV~Q!Vm7J?J}*&4JfpKbh%BL50(( z0^1`wEE=U5Snk}8R#Ca^?RT4Ls$9AVbh{;KPX-P;vn7TxK1oaLwe>+ld4d+CaO4RH zqRgNXE;~*o3$2_}%E%3;;SF}UC4e}}H=~Dl@HaYlD$t21RI!ZwcO1TCF0&|49j6)Y zlgkjrD7Bq8B`xcS>dPpP9&d%gF2Y>53Y#dqogS+FUOGi2cxdUrjyO*>PQai^>eMr^ z4szcm06YUnpBPRe+{@mj$LVCOwHsJ5H(h{>Zok{DCcsR%sSxl0*@t=nHI&Oz z3d~%VQc&a^G-;p{X9&40#l@k-u}~boT$a-EMc=oPNVzAMrEqFTSa8XarByLbo6Ayc zkPp8srA&*flbIIDxCPVV@uiGRi;R#qE&lQvX>enYfN61A9Mj@vWdyV|Exw@Nu((~( zOkr5`($!|gZ8m1b&HZM@*^k7rt_K9b!4h7mcDplU7hJ%OvaYr|-LbVRSFS90tmu9B zi46^Ob7`{SHV0iS! zg-xDnFmY%Xc7L*gtQ}K_d!NyMo2k?7pE`T6FKeEE_8crV>U^2Y_Zi8JQ+E4|#2n92 zmOIlV56m=-b51d%*Ct~|G$Fu@)>boOMvRbVM$ZOa!HlTp@Hq%qKCgcr&&EM$P}VE? zpV+XYy93zK$ozhG6yz%B`X;Tao;^B+<%a4-M!7f}^9sypPqcQi==pW6vauP5k&W*p zERZ#dt@k{-+}A4JL@qg}GttYJh0`R4m#@HeOllZ6eg?J6Y?fiWR~9Du*r-o5E8OK* z@Y|`-t|{!)s(8E5u&N3VP(|(r8(_mPuwYl(1q-UQvCT_VHe0-EgiBA5BA;D2Elw(q zUr&$|#wI~gwn%<*axo231;cCuiW>+;NlJWbAX9qyB;9C>hP*QBGt}c3vTcv(si2iT zIlHLX%*&izcz5yU?7}xmpM2~>35fS56A(#6fq=NNokl?Pgi$g=T0ndr=n4UmY9Jt< z5=UFjAcE|=U2t|vvNW_yP2e~TD79NJq6ya5PV?i(}+YjyXhHtOz=1JvCUj_y}?gZv@LrsyK6 zAnd<-KOwDQ+P9&-8oR}{I>v!rDdHTossdtO?@E!?c!C|gclq}G`ft_MA@|E{kiuvm z5|yF2z>T`?g%%PiHQeiiUS3rdrB9~eLfpS@mA@6GUbjVUuDeKG=&wW?sbak}QK=)l z&}602>fp*%x&a&pTr<&Xbvt;GnHkT8YkU_Xa2=U6U0An+sJKmcqSP%{QAe9V{qL&{ z-}$&G)pfLvA1Br&s`CM+Z&IkLC(pQ041eBR677*CrUQom^8*<%d`3t!{O^LUVE9x6 zhJR`thM(TTxoXv+vTz!dHOoH}xbrvNR(%!@^W#JTjUYj_pQ^nGZTijPce!g=m&Fh?v8;a}3caQH{zq`13{gpHm*gvnS5^2WV zNoQkkdK!6T;V>*$ober-9MDh`N!}Lq3DtBuPq#8BDZ<{E^jia^!uoLKD{w8~lx|Yf~)6Ws!X7Mc!CoODm4#$SxFuY!825Di7NXyOgCyL|{8YK12cs+Jg%GS9};KcY1O_x%0(xD_K_^zOmmBkLk zFJz`b;H(dG-a4*X(M2*_t-Mo_5~Pb1G13}yR<0Ngq$IO^w_7ur_Sc><-382`&0{M3!*-Wsnx@Z;KAbm<`GeZb4~KA_Cs;+2j!CJ#S1o!|cSk zI3M@wEe5%lOn_+|q;xfz1fu|^nK~wO-Fk2Jeb1KTM71gzw=uYk(HW`-d~Xx_GtfI2 zpVi3uf%juF6();_f3#>x&ZhXeCemk@D_Sh2f39fJaY0g_$`!2$jWAcVu&sbgE#S(z zqQxZ_ZIBYb17q&I%Ve%-`3_UESkZGuOM#XvTA_AITID6n$`vhsz7kkBWoV4j8*)X< z%d#DqIZdTA+2e%Hy}JzD5qWTf2p3R##sKJzs+j$ddw0F4DPPC{@2dpHzTCg#oItvsNPfqb@7Zq)jNB2G2rB=OS4FAIl9J6S*we; z*rNjw62JN_kd7fPe7eFD9s24PAulqyc$UtLd;17gb`adCUx*J zZ%|(VvSo8TVarmdnCf+VZN0g}lMAalg}&>{gGCJz|Fk6^99@Nk*eWSRRG2FRBcVMl zW8uJJTZ(5S$#!{t3>mj9Je-<0FC_T08+4) zRLNyLLh|@--l?%-yhZa2IVr4<4FJ=JPxDr$453c)s-~tL_Lgis8?TyPY?7~vc_HJT z1H-8cvX;eDqlKXX)oQQ|3aKs_G1VX!8dNRG!F3-)@hGO(?zDrH^*^l zr~QAZd(tM`IlMeDF z^C_@oDnr5Bk{Jp}RfVBo(;sGJC}4!Nq2T$TD+~ox14F@ChsRK``jGjR4a(Y3@aHy$ zf_noD1@|u)U??D=E%z&PKB|}K+^?)wmWVGg{h1;9ZlAhKDi-Bt&vy++;O?)E*$?K@ zo$neZ(@H$`*00?@p?+n#RViofx$`%7{>J2ed<`;;nt=?^F!QCiXr@-pV!mF^+P!Nc zx0(+lYgdZbr;{mOB>F?~dj0D%QoI-;t#};(U7>hU4HU1_dlQw}#V}4cJ4i#)KrYKp zr!-yZ%kxDIU+LQ?1o z3H|qL_MVwN|ID5Hkd(-4>3Yu0?0^5S{r!9I+5g_}>Hqk;b$#o|f8kcYV>{m2X|vJr z+6~K(!l6dH-fLN25Pd8<@ZRX5Xd)c$nrHlWuUogGa2>o+x1DCAYkAR$DBMC`51ghy z&C3t^Ry}aqUR>Pnw+HOO6VZe{9QFrJ(6p3C;jV?Q*|CAhv~}8S8XdEK(p<12QUKoH zc#n0KFp~G$BN5|ppko3*L1b?ahikC__J(kP^L;Gb*mOKAI@X&r!x1wGy3SlL0C|ag z8=QtuWEreCP2Y!`aNX~jEp|23=yl|eIbg7B&69U};b34ckVlcd)!t)ovahl?*kj>4 zXYTc_u0PYTywg^9<}F;G{!AS-JVWJWe}U1dR@-aGzvKlx^5b7rHPc-mhh)iO}`#|%Yab|VNt;le^LNN|R;p>Y8nATPjVPdTdHv*E?Gsc(zJ8dCPYQ6)_ zHt2O#B)b2)_3PGYE1QTNZq|4>=9jlJ;*yGW*xdxvM`?339yA_q_?^Y+PSpm^04nEq-|qOq@r(@CS+mt?TGO|&|DPbWs$^Qt`DXh} zE$9MnLT$BP*O@i^piAECn1S7N=B8`ScHL}F-vvJ>4PL-H+p$1X&`N3qVOg0Qjq#+q ziH^o6jo3gSnALD-{He`5Rebu z#*N0I!v`qt5ZBsDUCZ>mb^wJE0Wdst{D%DjgtA#HLInAPnC!mtYTwkcyawq} zoQ2_-qIKSv-5p+*r6pD1Zh`?Y!mKg`g5j?<-)Of?$BV-CokbWY!VT!-Ko^+DX8KBC zb{DK53f~xqg(X5y6poUSWyh*J^G-cF7Y;)xV>F_$FpQD7yEx1G3daEW-4P<;9(Mr# z2Rbe?ox2}bh}L?7`2UIx*!N)Ua1SclK8O?ltBh-a#|h$voZo~K$2fOKp{!s&_M8FM z&K3TT;#K5$i+d#$liuQ9MSc=*60Wir9}!><;qD{EmS=JkmkLvyU1;()PJDSLe+Vaz zajrM{27>4@K)R3O^vl^h+|ZtLqlCdnb&i>z- zu?y|-m$bBd*ucAa_fpj^D-WD5<8*u;c3Vup>1&v~sFrv)K0TuI0Mz;cE8m9gfvST2cdR1XPKL}in ze2OBUo@gtdP$r{xXbK1@&_0v#;Rvp3y=b#gs7!o#J5F5hgq(O`e0Ud5Tm0~lS6sqk#IO}?~apHvokdNTR^#(7? z`9H&nW1Q=ax{+F4wuLX?6;!qAj!yRL@$#&k0u`*0re0NK$j6^UOaHQ+fu!Af8UmH_ z9!q2VE^Z9H%-@7UWq|1qapHPE<-`kH*q`FW^?u5UOJJf{K)$T&eV0C#+WIkGr(*Us z1Ee2OTO_~P+o;(JHM@Ibg?ldqAmw9B*mtAwO}LVZeJxsL*w>EI z6PoU8NRd5mS$8>%)}a3wC5R7)1CB?R3o2jxcj}g&2;uY(rM$PH+>r11^JcFZu*D@w z*~1-vuhVIFgPPwmyTPemn=D&AN51gfs;Z<4Bpr@FQ0A|IY4GKXa^Xw{m9ESuBNT+a zBGptw)s*Ar$DvRebZX(m_2|Tj7q+3F!-?zBi4(7iPLJVro)2_7M{Q9GoyuzVNnA=y zv+gxeHvX)U14Um&>AMHvaUK?x72&thDsr%h5qICBim-!VP-+>QXkprCvT1z_<-xrx zEoL$7Fb1o@&OeGj59PxSUwD_rn*6dt6IUXyNQL||ou6cj3h z74OH1>#>3pFT{$E;>7hH&50{m0jr&!mZ-6W_ooyF$gZou2ENn z9jNg|gK_d#-a2w7V_wL34GHw=2@LA@MqLm)a z*@7H6SVbB^+7>L*hE+?D!WSi0lZON47b4PiZuUSpG~a7B=`wF%aikVNt_tWl@FRDO z@bvW$!rCZ$m%l?4{-8a^R;dHai)6V1An3Y~Ey1t1y+F-N6zOjyv2d7Jj|#8OJ{-Em zgmk`HV^*w;oP8jZzyj+Opqxm;d4LCt-QgfFt9bJP!ZywEV`@yGVfebG)>~Lgo%k znlu%r-Rnp#Fhd0)H@gt=4Jj6qkOrA#bTuqnrV5J#r`USXgei$r942J;xCh~XnJ$!y z&%&|X9q?vij_Ve3BfAimtYC%Iou*TFpb60z&X`>k!cu97bmQ=jJ?7p={s(C&Q0g`0k~N1)S$no0-chSLo)gq+6992r1H#EL!`lm}_8&KVd&4ZrpzZ zd^m=+dT-05OU5)VWf{`cN4l^i1JbDl3jbiU48JBEDjbq6iNy+eLw3IcjvDruF3)?y ze$M_zA~cAPSCE0_cH*)ZYm=n;d(R7vUCI!P6LT-MFC8u70OFEalJE@<@{BgIL5i& zGqOXcAL3P1^@gI+3N~X!#=(hkPz9Th4ziJfKE~%v;*_=d6*%$b*?b%)zI26bKk<@Jum##N?a$hJHBZx;+PQ?Dw#i#{9Vak=jYe}cFmL)e<7a=jDRwO+J)p-`DH zwty4Ydm$%Yh?zZ{xZVpnaT&%|H5Wg98EU;bmddIFrR-vvv#3D zp1_6G8-x=t3}Tp8rls{XKIxm+vZ1~1|=V#+K|=6VGu zzC1VhYn(X7x!w&@ac#p88u3e7e^ufdYbmKgxHcq?{E^oz&>%EN=m+@=430?Q%Tqt(MB2>mFODA+;i1Ut&ne-W54laYq(sW@;Lu0P8{Q0 z?^3By@Y^{3lJ1mgc4bq#iajTV?--7zUR8KUL%~|6b-jYCTQA+qP^e6l_-mZF-Vr(R z!YHv}80|CY9g!24QKDK}*Dkzn#n4!6$Y5S!S{LS>+kq!AN}=8k;JoYg#)%gWM&5uE z*IT?S=eOa+G0yeSlg{h98?T_MS(lvGRcz)IvS7_L^{OHS3PKk|Zr2&yAbPQVC{zZW z9>Iz0eU%e0Y-JzAiR*op6PM_;wA`-G;B_jNUprL#6>5y+nx33#!Lq7-78es!ZK-97 zFQD|%Wr}4*cnPf{XNH>*PcBo`XKC@TbNYw!L*1(=7gd%rG8QW$&V`n`wSENcVCcc; z??9(zz-JpyTn|2+cp>=g#fj@%2q#_@e6GdoJTKrg2|Q&M1EO{-RP7zOn3!ryfzSOY zeH47kddECkMGp8d;z{t)=4Wy2(LR&V6QDd)fgZ+SMd-O8(zhN%b&?Y_&q1Lwc=H5K zT#q-LcwwXXJWgESC^+$|c=PY@I?oH}#|uup5HGIB ziR+!36IbwJNhw@!#p|q$7ey&t*jWA+YK&5NQC77N;9_E`Erk~zN*~3GvLZZ)R*{1j zjCc|+a&x$T0j;45MzHFaf)V(;?s{1FBJ#DAh0E^y$dWI5j)&V1mtraKDko%xd-0Y2 zQJk+u(`v|?FP5aGu%6D-a$Vq`rE0l91()vS@F%f$+r0|zl-MSoWoLce-Akx^8Eorb zO|HHMS7FWxAIf6$4@K@iS`RMb!~uHt3uJS}Hh|?xEhx#7Sls<^nKZ|QJE7bQfB9y^ zcgV>?21`6M=HX~5p4d+gb_s0D;3pr^Lta>7h1D=15037TK+i&$Htw@V&N$7c(K1h3 zP{{EO$lJ3#-+{AyjGztY_|%)d2C1cM8Fe^ZscD^!>uGx=!=BgaNf zi)_aWoJ$$#|2^7>)pKK%{G%qZ7t25TO4OJLF{Iv>_#m#59Xn! zWA-po_P9{kk&6E>%TRnjv>B=Rd<-Ne`)Oh;*~FmXG3!BIQnKI#OAZ`hsa)wSPkzpY z`zHhr1|buao^#>8LVnU?d(_`vdx{-<2Z?@OTU>4tx2MPvcZ-nvw~0R#zqi91Jekvv zU)t)m#Xa#Jp+xF~oqNeCTr4H`49&pg8F7k~)lRb`d2!qgt@D`|CwTb#kryYWDaeZp z$pHhJq&PtU;s_bNOxQ}|lXxaDcqqOhTixg;7HRa0qVdG1!MN;2mG~5EfuHdeCq9Mi zxfXLzZxf%kAlu!Q(z{m>MO-kwr&zw+-jifK(|hUzQC7b9bS+S2y{9+ARetX&X1$>I zB;HecPr?RZnT^C8GzD1GdrC&-*;~v24rTDwC<`Y;833e)={1aIdx1TJgZf|t1h{VV za~I>D&2mV{cKBw_v%VeXbUQYXLaf_yV=QxO+^38{mFOo_1ksNXSyJ?KzXwsyy$`B% z|2Mh1pIrT)`0CH#>YV%M^zUELzu%{S|C0Xw0sZ?|Za4MR+vx;b+$!RLtFx~eMJ<*O< zyw?pID*MX5FyU?tQ1tfLNQx*M*u1?dtegUH%voxJPdXe{bW384fD*wBpsr` zWV0vcp`nar)@?dH-S%L1jJz>IX28vbg|4+=269GvRqK!)p+(%`l{Tx)C%Z&dY+!eq zm(MIXN|of(nnKAiuwz6j4D5c9I0YTpeUx0$fgQbC&cH5*8#P+U@hRKUPQ;gF!{^ho z{6OL4mmNAT{pT_JpNiS1S5?@z-s z#0;?rf|>i$L%#@GVijn+>PbJdw?a#PDlS1;+6F9D+iR^6?qX_sQ}Wd2DBQ{JPYE?s zou$Upk`2aqMJD_(XAidtx+fs{pq1bPHg(&dxS=mz#4NH0+I4w*pk3Pf?9$d}@Nv*= z=(c4NUjW`8gTbNWH|!7KEAFf@PF;EY$fR*Yd5x-)LA2}jsU3QBD+a*kV zH*WO2wH1z}UrCinjU{us!%!&wB~A?zVl4SSz@eAo3NE_+Edes0jP0}~2`2)x)3>E9 zejE#~gX{_WEB3D^0;5pcXA??u|AvrZ!)f{1C}(K{UmKV6RI)a*1&b#56r8lD%3Az= z=F-M=@dW9mjp=jneFIKh573;r zoa$W7jp>fz94dWNY{ny#5xXiI)1~(mSN1DAMus+YC+0ow9nA8D#;N0?>y5*S7beu6 z!inqMsx0R}j}yl@*Uvv@x2SszucE47EN6>46IfcN$$tfx3R9dqE3DtX;Y&F2<(d2$ zoH)k0-sGw68=lAMm$Y}~na@JoCZ{M+%ul_lur7LO7h%$cYys=IBzT8{n-iDeY;`xN8^d{2ykSWJZRIzp zLtOp}kO6$N&>jbIS@od6i7TF@hqIe-;(AXi%lT29IL5gi&hqxBJC0XW)g4xBf4UX$ zf;KK9rpw}>_7F~dd0y}+P8{Q0?**x#_Bc+zr14iHsIhjEic}c#r(RW9M}yjm?@sp& zu2Q`SUxPwr#$wOo#P!a`i5G(9i#Tz;vvJ}wcrAB#y6@p!D0aodQ^qAr?@ou{%_|uz z=~qAe1Q$VXB}QD|YBihFZQh3VG)k%|Gb~-!=5$L^o&MweK3ptJb;Z4b8JxJ@!Lvr! z_Xcjni7$`yJ8|L|=X#Gy#esL?^hA9CU{L{!_F?kT)(#n4z_$RHkFS%$5LL!9$TW|Km- zJ&UuhR~si@I1G6KC$2YmSl+0pUKMWMf!BFH;N~c`MJc!`tJ#yd zl$d5q!ObE{ABCH;B76v~A_s05@g&^HP3Snr$Qu$^K91H_1y~p>6@g_HccuFxDrpW} zd;toTfs3!>#Px8&i5J4fH*w;6r{=^JxLDGzbbpA~Ss5;hcBMnc@!zJlCY zDKX8Kf{Tqi(6D`QBgx28bV(L@y#{W=@{O`0T!vPW0~d^V5-xH#r8CePsz3y*ekl-v zznjeV)vf_v%j7+G6Rc6m-8x0G$5viT(cIsM)zl?2^fo6Jdq-@SxdFDz9I2Y6;~fLD zQBFR{_K~C4;9xe{DNd~021olgUkR>Fs!Qz@cjy+_eZikKW;=_sG#_C0fz0{woo*ZW zYfZB>q6hej+TGzGFRQHOxjW@qi7ChMbxWT3Bvf(i0LBNe&d1r$&m52|Al?o$WN8x)Z>jUgTIw z*pI}E&bfC(l`ggHJ>-g7`(DCp(YnKU`RLe1m*@aKN*o1C=^)aL6KjmQKSwOf5+Cm( zmvk4O%6VOHsMQ?L32L?MUNGAHRkDYn-EKgF*JPrR>Jz-C1@%;>mtfo;yQsFslF}6H z^K$GP#m!8YmY6e0e+mkf8Kggh6W0&YIq||l`tvw( z{ZNt zl?i0;#EI)2juS5g%>|se-r+cL8OWBK7PW|Tq1Y7*RT;M|ofcJqJH3ph^r=yg;bQ15 z#fa-$uO>C>3A~Pys>&n^EGso?$?DUmM|}ww4O3rndek#GalNBw4X;m+dLAdfJkDRl ziDR7Wy($$GUcu>?^r%eZE1Mow%6U>ij{$1xRfT;tCah(O)aY)s3!#^85DJwE7gylK z^}fi77lw;*oVeZ>IdK^-s-;N%3|_ZlXe>x%kgqUBs=z@HGrJV3?kLW_UUi&!;qc@* zPF!#FvYb0Oag1|40HxEU&fpbPwd|79q)J&jg)dlRO}(nffkM#*kt+2BZWF!OzXXNK zVASVv;(B-G#0wkR(>QUxyK>?Zqn4H`^`G%N70a(FHa$n}k^GXI^O>luc3;LN#k5;$ zQQ-Gc`sf{+0VAGV6sXULDw!^|`KPc>K$V4qjKzwebD^b6y%tqZjuZbh z6e@#1*W<+X_```8;?FHOaeWKn#H-@ZJ$Rkx3xDpS_9%rvWwqC6d?s1Xq*Z+cM5&lo z#WHO6l3bhL16#7ps_(#6?m=gA;kh{JEa%*Hv0`00>P+Yy)|-Ens6X!n>Qq+NFW+qV zPOAfFHnAg*3^?XioM+~E3-n~_Q$4fk1dB#{-r%Q9S&jH8G&6A8-n4O_HFCyjHjNe> zod$&*I124-V0peX2c+THYR9WLdks=cmmCj8YCId)14mv%?n~FH!?|i6sd8k#7xcRF zw6qJHOPMC{KhZ{;PS@mVN59CM3z+VYd3i{vn*hg&&uIDJ?X6C`8<-xPrgH|)lk@#v zi|E-5sD-*<1uzyI?A3!q=-8p8V57N3`jnqn4u&Osy|ND`)CZ#DzTMKiLTo3>xCqoAH#PK2V zOzdSZZ%Dtt23#lq_&of;qkVDNiz+Wks)ZdM6`#-)uIE~`uYL$LxewM+?1z6!$60(> z`X;n^DZP6gQN#t)Uy0>QCjS!j*+}wKRn{~8l|3NJ^7|`y02S6>`B}Ki@2|wH7W7xd zdrE&r=p4k^OVpp&UrENn*;~w@ZbOVCr>b(Q(El)eiypRWG}{a8S=aJ=%>b_3MyomB zY@eAHt!OzUWV?G8=Q$_ELh(5zzj%xkV)@1Q#WJTxR;iLa-Ut;zykSHt#G6x4C5ty* zaz*0}y;@GZiMgp9Z(a{QPRLMiEICVBuB#=Ekdr0NiRVX~Uz@qtx4QmJ!}3mB-5D4{ zK+nnx{F!>YVa?F^$NrK-R$Fba9skl?5JqO;#aetCYmM>-TOPn&AG)~EOC#OruGz8S zPTpCpMZy#Xo1<@O*WYG&7W50--P=gFkX%d)O^b7lYwTR(SpzsbU`!n`u%qj3nK2t5 z$joQC;@`4;gxtUN?E{ZXACAk07pHZS>9XNYoxT|y$+VLEmnQ5#`1pT>RcPeDctEf< zMN^<#=Dsw^r(?A)AwTj{P^ipo+?R3U`q?;6yl^(|S)90jzK9c7X5+xishaf5Zs?K* zsjY9}bt*8urfU{np!P_`4E=Hwrhxq6jOYxJ1D~GIkyT_Q?|IWO}#X$o=E{veUplL58~`&>M35+d=pMwj~b}%Z}t`y=8xj^OX_~LRt9HHpkG#Q z;!bK7fGbkF?$k>SrUZb8wYA(u#XnVxV<3Dv&bH65tGGc!YzgcDJtN zIP3U5FpujSrXji+2J0$L#`C@~RU1qirq>`tF;9%epp0eKZ92o-_Mjh4-WVZ+HFII1 zYb}_8oYY;_I%FXKDDL1&GgU@vA0Vn?Bejq4^4KMmj7E-^-%BH%Iwr`4Y{7p#c3c%n1;0v*H|@`Y3t81_I=vt|W^X+f4#xvq zpfn8NVEKXB>cEdtR$&clISD^U_|IOq3BNW6FeaV@6_Te=aX)a_U5vuZ=G*PSYX_F{ z@Xo$)vv1V{uh*)bg%N8jf;(Ht*tt`K4@Y!x4kY)mJ66-8cWP&xz^+k$w0u${FVKWf zCG^Iou0_6})SA|53)Hth9I?%2{IfsY4j()~Yk?W`eDP9$*x#_`dJ8~r3)w^uv<7c< zEwcr8hC%&xiwG5cINaiRpre}Q!K?wi6@|mSV1DY2Q@#V&S0x|TtZuj6t=WK#O{)tU zC#*uRH{8lJtx)NwR3Ln%o}@^)KY&ISZeesK52Ex{$p@*z;Wi=z_?mBnikcu(6mD*s z-a-%j9W>s6-|Hq#Kq+~~DBwb%tgvGfM4QLwt6*(9dhO7BqTCgzv7I=t+0nKa^2;)OzpzRD^-wg5+VQTYE6NH0S zzMEV@B``-sK6HX@2(<>7e6(wxiGPBNZYS*vJjYuAM{GJR*naWow()RF$LiETDHgQK zI`c$wXAU;QtdYhMUTz0L$Df^)*JMCD(Jgox&V8#wwO{i=*Fz28ZH3B=j zb0{1GpKR6Q<{1l6^8x5A*jRF#zvu<#*_!Pv*iHBc{=2c+Ca%B9Z<)~0PW7N&`=F>D z^f&uiYqskqSM6BcHh~{7A8T)*WvW6beX`eqDz*T3ffIoK84jES?`hW^ZytO=0K;Vj zD*WDD>OH4LoVVFFS!>)#Q3-seHD@)T2`>T*wgsKZbK$N!ymhi>wM?g3GaC(lOib=u&3OiE=fVvzOBg{!4~H0>K>Gz(bi9TGjU%YBE-H1L?Z6bcRsi@4G#b`C zf$#9L#9hy9K~-=YsLjVe21pZX(EEerCcB1cMOVkA1rn#RaWAhed{^;@;UnAxt_fb!U&_Y$$qmvMTyvNwdd{OaDex*1^C5ln) z8~{Zq4f`D*LU8n9(tG%sJtR_x(Sw2Dh~hHLbeQc$(F({S>-~v zDRjyABl>B~CF2`9a_fbgRUDv>xfynsWt|gnR(6NLy?Bqc0QC;RD0&xgqczuV#?V4< z?o8c`-yTj-92T|GLYF1zL*(uTq^qziO^ZK)4if~Udb>vgMih?L+s!6x;m{!&yp`Yo z7&OO6qMrp|?U-GFXlS55Knbfbj!B8zqw#Hu2BUnb3!u*ei6A2l5;l2+VVa-*|3Jkt Aod5s; literal 0 HcmV?d00001 diff --git a/graphdoc/docs/_build/doctrees/graphdoc.modules.doctree b/graphdoc/docs/_build/doctrees/graphdoc.modules.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6774075ee252eaeb114ad2b1db1908c8cc9f96c2 GIT binary patch literal 96939 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 Vg`oB5GDHH$z literal 0 HcmV?d00001 diff --git a/graphdoc/docs/_build/doctrees/graphdoc.prompts.doctree b/graphdoc/docs/_build/doctrees/graphdoc.prompts.doctree new file mode 100644 index 0000000000000000000000000000000000000000..29aa5858481b85b8e5ee37dc32ce44315d0cac57 GIT binary patch literal 465270 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 literal 0 HcmV?d00001 diff --git a/graphdoc/docs/_build/doctrees/graphdoc.train.doctree b/graphdoc/docs/_build/doctrees/graphdoc.train.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1a45d25b9b7b8c2566d761098f56eb2e3e6359f7 GIT binary patch literal 335370 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 G8U7zwd19Ub literal 0 HcmV?d00001 diff --git a/graphdoc/docs/_build/doctrees/index.doctree b/graphdoc/docs/_build/doctrees/index.doctree index 0dd2aa48b3dc9754ea02771fc7237db9e352e014..39c59ee1047d1ab869ba5a0bafba4444182f6586 100644 GIT binary patch delta 2147 zcmb7FYiL__6yHrq(=A*d=$#ZBMRkk|hnT z;M$eh$M6n^=QS5b4oh=IFZxP0>`0!z_fWt`?HF>il=Q2xaKwK-vk>h zr_X~~n#G`Y)*vs+8OdbEFRMnmRR!9mZ`RykP<%=Mx_TMb@xH#VW*H8F8d`^-eTXPN zzz)N6+}$kRitigNTICF(ZyC3Bz67Ez7RH7P(Y)vJC8}Zx9#)d+{C35C# zj&XI$!7hCr?$*@glTe#R8n>mYWI7g1g_F_5bT)wjPATP`w{_dtVXmso6$pnNu6fpj zMQDXK>VuxNcd&4TU&;^J(d=Y(yF=xp=6<@|7JMcYRHmwp8mP;k-qR!=;|?6i$cp6J zln;0KaidTWOL-Cn(R#Dhvi9$XgH!MZD*_EgCa-m+UVBSs+fO69Opd|quKe3FWO$Fm z_P+TQgoBX*4tvaQU9J&k6wS$&AxS$GkEADsl)NPKk|7!kPo^Wnc$8VjWO0_N$m6bg z&OS#^q(Kx}T{FG368{8VwmiuRc-!(F_ik?1Gy(El$E{jkpYO4_hOJf~w}u1OCi;$A zo!lM5JMlwnTjgy=Y7;-lpuOFarazJ{DU3(rQ+zZgi(jL;?xg9ny}(U`-5{*XTsT_H z`YE$IS)MmDlpnJnWm(zy(YA`8;16})r}pytjUniM5^vE%ZbZbqb*spV0h^P1KzX~k zuP|n7&Sk#4f98Kt=Kf~!K55Jd85v}h#q4E} zv{XU$k494T_Qb31>I!78Yq;vJ2_^FeW^(MSQPY0kY&*YS=<%GXYWlMo5Z3|_s%)@f9~&p z=G@yoHzV96ciq!G%k8M0^Ybe#Gl~C;B2Ic;+yr=G93|T{Gmf`xM;YUD#*Q290(Y&L z-D5vnGY-GwBm2R+acF@W2zNtUcm5P0x*YqN`7#aPz$dlXASAMJ1Ac*M9-5(8h3IcM zdVK}mVdncac`$3x8%WOL-1b%N1I}NW7v;6_u~VoutNrCXE);ZUCOweOj`U|@YAh*h zX1U(FcvZRcxLmi5g^#9lThTf3;MOIawMy9KvQzBF&;Lv3j+<+MWaI zZKT}WTUU>#p#MO!{kgc78XPuBy4@?JwSoE{t)mczR%knH!w!$;*6k@Zp3W!afmB+~ z8Bqh5Jrlw~X5BhcR@qM0&&TV*t8`#=!%n`P2EDKanq98Q7&eC%wmwtjhc1;X9OxrY&#||+h z=1SED=~A2~+7>cS$}kp$O}kc2+@mK5zH*LizF>ceUaW|swIRSRQ04&h8#)>{o78`< zO}$8{+e0@=4V}+q6D9Yw_hlvmgn72y1P$Ezo{5au#Ejup(cfIb{n~U>!Tp-Sr(z@f zb`9`<)&~DT!JCTUmYf{Z;$T!^2MOih<=8aviemF-?=c{Cx>QQE`n#fYDd{0=i?F06 zPFd5k8om##pW7ciQ&T$wOYlY!@X4mGt{E`o>Sr7!Q?~^3@>dU%Cf>jcx#De*pdygV z6&}xr0vr42_85hUz#-^^V~~Ud48xETBrJ-Aiy==ZJv0rGDd?MmXdn|` zQg0#ZpNRShQJ;VzIIT!jAD#1UKE#k;(%&569*{^5hrB_{C~3+9i?hBU-VM8uZ3#Bs zCrL7g^JFo{4J^e6G={rddbsBm;%BDV&91Px7#6>&_lJMx{;SacTdimAb%7 diff --git a/graphdoc/docs/_build/doctrees/links.doctree b/graphdoc/docs/_build/doctrees/links.doctree index 1965abc90fd721ae2912f29ad2d9519bebb28dcc..8cde455777e471881c01e4a3ab437e32af10d1c5 100644 GIT binary patch delta 719 zcmbOv|5}N)fpuzv;6_##mdTk+-1W|SdJ6H51&PTSsR}-s$*Fn8sR~AV2386gB_##L zR{Hwo<>h*bV0pd#qICTnh?-)3A5UjjzhGBgpyDYR?6Ffa1Zt;fWC+Dh=@Eh`*M%z8 zHPSVhl9(Y1R3eU$Re;EPfNcXxO97>2fLN|an-rT%GZZqoG8Da8H(Rr0GI2Eb@TC?N z z&hXuQoNEaq)7#?74t&y_AcJ3LC}q5uJdwvo^;v0B#&gX^ux8c_Hn4x+pz%LWX5zJD z%i>~WU_dbHzkyR03s9nmtvJ85C^>aXhH4K>PG(-}6mKSwO~jdhnb(0;1;cnn zknyZw<0t3wNf7DQ)qFOrb{J+^gUrgnk?8_s|mKA~FicpX%1(M%j=J$$J}MfpXO1KEW)&u72JJh_rvMyxbLsCJ4* zhDZiahE9fBhGm9vhFgZi=1ts77#SZ-J}98Tb}vII<96v}Lq6%r{``WISMtiM-YiYZ zxTV=R1*DTTgDrzSc1p&5H2#yxZ+Y#QGXBEN_ysq^G2?p=TXBAAQF7{(4AmZ%oXot` zDc($_844LhncQPCS%Ft#@h~I|M5N@U( U$V{e;?~`o=Bp7c_HW4%j0PE3xLI3~& diff --git a/graphdoc/docs/_build/doctrees/modules.doctree b/graphdoc/docs/_build/doctrees/modules.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b5b0668865c5cab0d012eb29de3a7be61dee3fbe GIT binary patch literal 2777 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