Skip to main content

Singer.io utility library - PipelineWise and Meltano compatible

Project description

realit-singer-python

PyPI version PyPI - Python Version License: MIT

Writes the Singer format from Python.

This is a fork of Singer's singer-python made for PipelineWise and Meltano

Usage

Setup environment

This library depends on python3. We recommend using a virtualenv like this:

python3 -m venv ~/.virtualenvs/singer-python

Installation

Next, install this library:

source ~/.virtualenvs/singer-python/bin/activate
git clone http://github.com/singer-io/singer-python
cd singer-python
pip install

Usage example

Now, from python code within the same virtualenv, you can use the library:

import singer

singer.write_schema('my_table',
	            {'properties':{'id': {'type': 'string', 'key': True}}},
		    ['id'])
singer.write_records('my_table',
                     [{'id': 'b'}, {'id':'d'}])
singer.write_state({'my_table': 'd'})

Logging configuration

realit-singer-python by default doesn't use any predefined logging configuration, it's up to the calling library to define it. However, if the environment variable LOGGING_CONF_FILE is found and set then the realit-singer-python would use the path provided in the env variable as the logging configuration for the logger.

Singer Decimal

Enabling the use_singer_decimal = True in a tap will output decimal and floats as a string rather than their numeric representation.

Optional Setting:

A boolean setting: when enabled true in the config will outputs decimal and floating point numbers as strings to avoid loss of precision and scale. For supporting taps, there are hints in the schema message, format = "singer.decimal", and additionalProperties scale_precision dictionary providing precision and scale. For decimal data, the target can use this information to correctly replicate decimal data without loss. For the Floats and Number data type without precision and scale it is recommended that post processing formats the datatype based on an inspection of the data because the true data size is unknown / dynamic.

{
  "use_singer_decimal": true,
}

Developer Resources

Initialize your Development Environment

pip install poetry
poetry install

Create and Run Tests

Create tests within the tests/ directory and then run:

poetry run pytest

or

poetry run coverage run --parallel -m pytest

Continuous Integration

Run through the full suite of tests and linters by running

poetry run tox

These must pass in order for PR's to be merged.

License

Distributed under the Apache License Version 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

realit_singer_python-5.0.2.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

realit_singer_python-5.0.2-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file realit_singer_python-5.0.2.tar.gz.

File metadata

  • Download URL: realit_singer_python-5.0.2.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for realit_singer_python-5.0.2.tar.gz
Algorithm Hash digest
SHA256 a2da6e4383aa82c9dfb98d4f7c86860dbf326c2e43ab6980412f5f061b08542d
MD5 9c8a2378d679b2b9fbf8804fb19d9f9d
BLAKE2b-256 4db0d73f2db591af5c51285bd4378f85351262e0440218d02be5780f628e6dbf

See more details on using hashes here.

File details

Details for the file realit_singer_python-5.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for realit_singer_python-5.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 04ed54ab28e84c95d5abada7d57c659619ffb89f36e77216b52566e8f0939851
MD5 046b83f8b1b76edb291fb7f6d2b230f5
BLAKE2b-256 a575aa38275da5cef0a77fd59c76db52dcee527ac90402523981b3cb4b95b03f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page