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.1.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for realit_singer_python-5.0.1.tar.gz
Algorithm Hash digest
SHA256 190bc9174d1bedb025e1b161a6aeb7aba5fd3ce6103aee42a8f54255dc6a8cca
MD5 b19b9ed8b4592d156ca9329e7f30bb2d
BLAKE2b-256 f871d746a0bb80d2acd37336c7881e6cc83b266742bcd96480994703b70514ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for realit_singer_python-5.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 df43042a69f492de5c3dd49124df6cb61d0e0a76ab06edc6250a46ca45e7adbf
MD5 1991148199996af5897a91e7366f4dea
BLAKE2b-256 3f4882b94243300a38bf32d4cc18e48f12097590a8f4502bd5e10d2239e3bbd2

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