Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

internal: add logging to python template generation #3424

Merged
merged 2 commits into from
Apr 22, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion generators/python/sdk/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.3.0-rc0] - 2024-04-10
## [1.3.0-rc1] - 2024-04-22

- Internal: add logging for python snippet template generation.

## [1.3.0-rc0] - 2024-04-21

- Feature: The generator now registers snippet templates which can be used for dynamic
SDK code snippet generation.
Expand Down
2 changes: 1 addition & 1 deletion generators/python/sdk/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.3.0-rc0
1.3.0-rc1
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from fern_python.generators.sdk.core_utilities.client_wrapper_generator import (
ClientWrapperGenerator,
)
from fern.generator_exec.resources import GeneratorUpdate, LogLevel, LogUpdate
from fern_python.snippet import SnippetRegistry, SnippetWriter
from fern_python.snippet.snippet_template_factory import SnippetTemplateFactory
from fern_python.snippet.snippet_test_factory import SnippetTestFactory
Expand Down Expand Up @@ -418,6 +419,10 @@ def _maybe_write_snippet_templates(
generator_exec_wrapper: GeneratorExecWrapper,
) -> None:
if context.generator_config.output.snippet_template_filepath is not None:
generator_exec_wrapper.send_update(
GeneratorUpdate.factory.log(LogUpdate(level=LogLevel.DEBUG, message=f"Generating snippet templates for Org: {org_id}, API: {api_name} at version: {project._project_config.package_version}."))
)

snippets = snippet_template_factory.generate_templates()
if snippets is None:
return
Expand All @@ -431,12 +436,18 @@ def _maybe_write_snippet_templates(
fdr_client.template.register_batch(
org_id=org_id, api_id=api_name, api_definition_id=uuid4(), snippets=snippets
)
generator_exec_wrapper.send_update(
GeneratorUpdate.factory.log(LogUpdate(level=LogLevel.DEBUG, message=f"Uploaded snippet templates to FDR."))
)
else:
# Otherwise write them for local
project.add_file(
context.generator_config.output.snippet_template_filepath,
json.dumps(list(map(lambda template: template.dict(by_alias=True), snippets)), indent=4),
)
generator_exec_wrapper.send_update(
GeneratorUpdate.factory.log(LogUpdate(level=LogLevel.DEBUG, message=f"Wrote snippet templates to disk."))
)

def _maybe_write_snippets(
self,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import json
from typing import Dict, List, Optional, Union

import fern.ir.resources as ir_types
Expand All @@ -20,7 +21,8 @@
TemplateInput,
VersionedSnippetTemplate,
)

from fern_python.generator_exec_wrapper import GeneratorExecWrapper
from fern.generator_exec.resources import GeneratorUpdate, LogLevel, LogUpdate
from fern_python.codegen import AST
from fern_python.codegen.imports_manager import ImportsManager
from fern_python.codegen.project import Project
Expand Down Expand Up @@ -68,13 +70,15 @@ def __init__(
imports_manager: ImportsManager,
ir: ir_types.IntermediateRepresentation,
generated_root_client: GeneratedRootClient,
generator_exec_wrapper: GeneratorExecWrapper,
) -> None:
self._project = project
self._context = context
self._snippet_writer = snippet_writer
self._imports_manager = imports_manager
self._ir = ir
self._generated_root_client = generated_root_client
self._generator_exec_wrapper = generator_exec_wrapper

# Stolen from SnippetRegistry
def _expression_to_snippet_str(
Expand Down Expand Up @@ -697,6 +701,10 @@ def generate_templates(self) -> List[SnippetRegistryEntry]:
is_optional=True,
)
)

self._generator_exec_wrapper.send_update(
GeneratorUpdate.factory.log(LogUpdate(level=LogLevel.DEBUG, message=f"Snippet template created for endpoint {json.dumps(self._endpoint_to_identifier(endpoint))}."))
)
snippet_templates.append(
SnippetRegistryEntry(
sdk=sdk,
Expand Down
Loading