In a yaml manifest, if I want to put a integer fro...
# ask-ai
k
In a yaml manifest, if I want to put a integer from the configuration like
Copy code
pagination_strategy:
      type: CustomPaginationStrategy
      class_name: "source_mixpanel.components.EngagePaginationStrategy"
      start_from_page: 1
      page_size: {{ config['engage_page_size'] }}
How can I do ? Because
Copy code
page_size: "{{ config['engage_page_size'] }}"
will be interpreted as a string ?
k
In the YAML manifest, you can directly use the
config
variable without quotes to refer to an integer from the configuration. The
config
variable is an object that represents the connector configuration. The object's keys are the same as the keys defined in the connection specification. Here is how you can use it:
Copy code
yaml pagination_strategy:   type: CustomPaginationStrategy   class_name: "source_mixpanel.components.EngagePaginationStrategy"   start_from_page: 1   page_size: {{ config['engage_page_size'] }}
In this case,
{{ config['engage_page_size'] }}
will be interpreted as an integer, not a string, because it's not enclosed in quotes. For more details, you can refer to the [Interpolation variables section](https://docs.airbyte.com/connector-development/config-based/understanding-the-yaml-file/reference#variables) in the Airbyte documentation.
k
Without string I got the following error :
Copy code
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/run.py", line 14, in run
    source = SourceMixpanel()
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/source_mixpanel/source.py", line 35, in __init__
    super().__init__(**{"path_to_yaml": "manifest.yaml"})
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/airbyte_cdk/sources/declarative/yaml_declarative_source.py", line 20, in __init__
    source_config = self._read_and_parse_yaml_file(path_to_yaml)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/airbyte_cdk/sources/declarative/yaml_declarative_source.py", line 28, in _read_and_parse_yaml_file
    return self._parse(decoded_yaml)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/airbyte_cdk/sources/declarative/yaml_declarative_source.py", line 42, in _parse
    return yaml.safe_load(connection_definition_str)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/__init__.py", line 125, in safe_load
    return load(stream, SafeLoader)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/__init__.py", line 81, in load
    return loader.get_single_data()
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/constructor.py", line 49, in get_single_data
    node = self.get_single_node()
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 129, in compose_mapping_node
    item_key = self.compose_node(node, None)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/composer.py", line 127, in compose_mapping_node
    while not self.check_event(MappingEndEvent):
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/workspaces/airbyte/airbyte-integrations/connectors/source-mixpanel/.venv/lib/python3.10/site-packages/yaml/parser.py", line 549, in parse_flow_mapping_key
    raise ParserError("while parsing a flow mapping", self.marks[-1],
yaml.parser.ParserError: while parsing a flow mapping
  in "<unicode string>", line 156, column 19:
          page_size: {{ config['engage_page_size'] }}
                      ^
expected ',' or '}', but got '['
  in "<unicode string>", line 156, column 27:
          page_size: {{ config['engage_page_size'] }}
@kapa.ai
k
Sorry @Kévin Descamps, I seem to be having a bit of trouble. Don't worry though, I've pinged my support folks and they will try to fix me up! 🧑‍💻 Perhaps try again in 5mins?