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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for realit_singer_python-5.0.3.tar.gz
Algorithm Hash digest
SHA256 d6bb036a9d9beb6d417bf1d3c607409fd577ae0f76ee853ed950b5574011d181
MD5 8a06db4bcbf543e55e82bc8fc5aa08bd
BLAKE2b-256 201ae637e0ab4c6c08f32d503707ffccca759ef53f61d30bb4583e6e6fee21fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for realit_singer_python-5.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1d6d3a236b67c750d3df1294cad2e817c848f5d7df8cf57936b8297bae62fb00
MD5 3d3a6b9ffaef0f036896ce01cfa9c453
BLAKE2b-256 62c33076cc8bfd709256a082a93e752c121df901b59f8b8e8ab421a6bb03de41

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