singer-target-installed

Description

Add a Singer target.

Resources

Variables

Name Type Default Description

target_name

string --

The name of the target. Required

executable_name

string --

The name of the tap executable (defaults to target name).

link_base_path

string --

(Optional) path to collect links to Singer binaries.

python_version

string latest

The Python version to use for the underlying virtualenv.

target_pip_string

string --

The package name or git url for this target.

target_system_dependencies

list --

(Optional) system dependencies for the target Python package to be installed.

Code

doc:
  short_help: Add a Singer target.
  references:
    Singer webpage: https://www.singer.io

args:
  target_name:
    doc:
      short_help: The name of the target.
    type: string
    required: true
    cli:
      param_type: argument
  target_pip_string:
    doc:
      short_help: The package name or git url for this target.
    type: string
    required: false
  link_base_path:
    doc:
      short_help: (Optional) path to collect links to Singer binaries.
    type: string
    required: false
  executable_name:
    doc:
      short_help: The name of the tap executable (defaults to target name).
    type: string
    required: false
  python_version:
    doc:
      short_help: The Python version to use for the underlying virtualenv.
    type: string
    default: latest
  target_system_dependencies:
    doc:
      short_help: (Optional) system dependencies for the target Python package to
        be installed.
    type: list
    schema:
      type: string
    required: false
    empty: true
    cli:
      param_decls:
      - --target-system-dependency

frecklets:
- python-virtualenv:
    venv_name: 'singer_target_{{:: target_name ::}}'
    python_type: pyenv
    python_version: '{{:: python_version ::}}'
    system_dependencies: '{{:: target_system_dependencies ::}}'
    pip_extra_args: -U
    python_packages:
    - "{{:: target_pip_string | default('target-'+target_name) ::}}"
- link-exists:
    frecklet::skip: '{{:: link_base_path | true_if_empty ::}}'
    dest: '{{:: link_base_path ::}}/target-{{:: target_name ::}}'
    src: "~/.pyenv/versions/singer_target_{{:: target_name ::}}/bin/{{:: executable_name\
      \ | first_non_empty('target-'+target_name) ::}}"
frecklecute --community singer-target-installed --help

Usage: frecklecute singer-target-installed [OPTIONS] TARGET_NAME

  Add a Singer target.

Options:
  --executable-name EXECUTABLE_NAME
                                  The name of the tap executable (defaults to
                                  target name).
  --link-base-path LINK_BASE_PATH
                                  (Optional) path to collect links to Singer
                                  binaries.
  --python-version PYTHON_VERSION
                                  The Python version to use for the underlying
                                  virtualenv.
  --target-pip-string TARGET_PIP_STRING
                                  The package name or git url for this target.
  --target-system-dependency TARGET_SYSTEM_DEPENDENCIES
                                  (Optional) system dependencies for the
                                  target Python package to be installed.
  --help                          Show this message and exit.
# -*- coding: utf-8 -*-


#
# module path: pycklets.singer_target_installed.SingerTargetInstalled
#


from dataclasses import dataclass
from pyckles import AutoPycklet
from typing import *    # noqa

@dataclass
class SingerTargetInstalled(AutoPycklet):
    """Add a Singer target.

       Args:
         executable_name: The name of the tap executable (defaults to target name).
         link_base_path: (Optional) path to collect links to Singer binaries.
         python_version: The Python version to use for the underlying virtualenv.
         target_name: The name of the target.
         target_pip_string: The package name or git url for this target.
         target_system_dependencies: (Optional) system dependencies for the target Python package to be installed.

    """

    FRECKLET_ID = "singer-target-installed"

    executable_name: str = None
    link_base_path: str = None
    python_version: str = None
    target_name: str = None
    target_pip_string: str = None
    target_system_dependencies: List = None


    def __post_init__(self):
        super(SingerTargetInstalled, self).__init__(var_names=["executable_name", "link_base_path", "python_version", "target_name", "target_pip_string", "target_system_dependencies"])


frecklet_class = SingerTargetInstalled
# -*- coding: utf-8 -*-


#
# module path: pycklets.singer_target_installed.SingerTargetInstalled
#


from pyckles import AutoPycklet

class SingerTargetInstalled(AutoPycklet):
    """Add a Singer target.

       Args:
         executable_name: The name of the tap executable (defaults to target name).
         link_base_path: (Optional) path to collect links to Singer binaries.
         python_version: The Python version to use for the underlying virtualenv.
         target_name: The name of the target.
         target_pip_string: The package name or git url for this target.
         target_system_dependencies: (Optional) system dependencies for the target Python package to be installed.

    """

    FRECKLET_ID = "singer-target-installed"

    def __init__(self, executable_name=None, link_base_path=None, python_version="latest", target_name=None, target_pip_string=None, target_system_dependencies=None):

        super(SingerTargetInstalled, self).__init__(var_names=["executable_name", "link_base_path", "python_version", "target_name", "target_pip_string", "target_system_dependencies"])
        self._executable_name = executable_name
        self._link_base_path = link_base_path
        self._python_version = python_version
        self._target_name = target_name
        self._target_pip_string = target_pip_string
        self._target_system_dependencies = target_system_dependencies

    @property
    def executable_name(self):
        return self._executable_name

    @executable_name.setter
    def executable_name(self, executable_name):
        self._executable_name = executable_name

    @property
    def link_base_path(self):
        return self._link_base_path

    @link_base_path.setter
    def link_base_path(self, link_base_path):
        self._link_base_path = link_base_path

    @property
    def python_version(self):
        return self._python_version

    @python_version.setter
    def python_version(self, python_version):
        self._python_version = python_version

    @property
    def target_name(self):
        return self._target_name

    @target_name.setter
    def target_name(self, target_name):
        self._target_name = target_name

    @property
    def target_pip_string(self):
        return self._target_pip_string

    @target_pip_string.setter
    def target_pip_string(self, target_pip_string):
        self._target_pip_string = target_pip_string

    @property
    def target_system_dependencies(self):
        return self._target_system_dependencies

    @target_system_dependencies.setter
    def target_system_dependencies(self, target_system_dependencies):
        self._target_system_dependencies = target_system_dependencies



frecklet_class = SingerTargetInstalled