multipleOf decimal.DivisionImpossible

When using the output of tap-oracle, the target fails with the following error:

CRITICAL [<class 'decimal.DivisionImpossible'>]
Traceback (most recent call last):
  File "/usr/bin/target-snowflake", line 10, in <module>
    sys.exit(main())
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/target_snowflake/__init__.py", line 85, in main
    raise exc
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/target_snowflake/__init__.py", line 72, in main
    main_implementation()
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/target_snowflake/__init__.py", line 64, in main_implementation
    process_input(config, input)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/target_snowflake/__init__.py", line 40, in process_input
    target.process_line(line)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/target_snowflake/target_snowflake.py", line 246, in process_line
    stream, o["record"], self.key_properties[stream]
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/target_snowflake/target_snowflake.py", line 388, in validate_record
    self.validators[stream].validate(float_to_decimal(record))
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/jsonschema/validators.py", line 129, in validate
    for error in self.iter_errors(*args, **kwargs):
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/jsonschema/validators.py", line 105, in iter_errors
    for error in errors:
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/jsonschema/_validators.py", line 304, in properties_draft4
    schema_path=property,
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/jsonschema/validators.py", line 121, in descend
    for error in self.iter_errors(instance, schema):
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/jsonschema/validators.py", line 105, in iter_errors
    for error in errors:
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/jsonschema/_validators.py", line 127, in multipleOf
    failed = instance % dB
decimal.InvalidOperation: [<class 'decimal.DivisionImpossible'>]
ERROR could not find io module state (interpreter shutdown?)
Traceback (most recent call last):
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/snowflake/connector/network.py", line 776, in _request_exec
    auth=SnowflakeAuth(token),
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/sessions.py", line 451, in request
    prep = self.prepare_request(req)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/sessions.py", line 382, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/models.py", line 307, in prepare
    self.prepare_body(data, files, json)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/models.py", line 436, in prepare_body
    length = super_len(data)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/utils.py", line 59, in super_len
    fileno = o.fileno()
RuntimeError: could not find io module state (interpreter shutdown?)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/snowflake/connector/network.py", line 648, in _request_exec_wrapper
    **kwargs)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/snowflake/connector/network.py", line 865, in _request_exec
    raise RetryRequest(err)
snowflake.connector.network.RetryRequest: could not find io module state (interpreter shutdown?)
ERROR could not find io module state (interpreter shutdown?)
Traceback (most recent call last):
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/snowflake/connector/network.py", line 776, in _request_exec
    auth=SnowflakeAuth(token),
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/sessions.py", line 451, in request
    prep = self.prepare_request(req)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/sessions.py", line 382, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/models.py", line 307, in prepare
    self.prepare_body(data, files, json)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/models.py", line 436, in prepare_body
    length = super_len(data)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/utils.py", line 59, in super_len
    fileno = o.fileno()
RuntimeError: could not find io module state (interpreter shutdown?)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/snowflake/connector/network.py", line 648, in _request_exec_wrapper
    **kwargs)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/snowflake/connector/network.py", line 865, in _request_exec
    raise RetryRequest(err)
snowflake.connector.network.RetryRequest: could not find io module state (interpreter shutdown?)
ERROR could not find io module state (interpreter shutdown?)
Traceback (most recent call last):
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/snowflake/connector/network.py", line 776, in _request_exec
    auth=SnowflakeAuth(token),
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/sessions.py", line 451, in request
    prep = self.prepare_request(req)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/sessions.py", line 382, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/models.py", line 307, in prepare
    self.prepare_body(data, files, json)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/models.py", line 436, in prepare_body
    length = super_len(data)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/botocore/vendored/requests/utils.py", line 59, in super_len
    fileno = o.fileno()
RuntimeError: could not find io module state (interpreter shutdown?)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/snowflake/connector/network.py", line 648, in _request_exec_wrapper
    **kwargs)
  File "/code/virtualenvs/target-snowflake/lib/python3.7/site-packages/snowflake/connector/network.py", line 865, in _request_exec
    raise RetryRequest(err)
snowflake.connector.network.RetryRequest: could not find io module state (interpreter shutdown?)

It appears to be affected by two floating point fields that have the schema element multipleOf set to 1e-38

Complete schema:

{
  "properties": {
    "freight_value": {
      "multipleOf": 1e-38,
      "type": [
        "null",
        "number"
      ]
    },
    "order_id": {
      "type": [
        "null",
        "string"
      ]
    },
    "order_item_id": {
      "minimum": -99999999999999999999999999999999999999,
      "maximum": 99999999999999999999999999999999999999,
      "type": [
        "null",
        "integer"
      ]
    },
    "price": {
      "multipleOf": 1e-38,
      "type": [
        "null",
        "number"
      ]
    },
    "product_id": {
      "type": [
        "null",
        "string"
      ]
    },
    "seller_id": {
      "type": [
        "null",
        "string"
      ]
    },
    "shipping_limit_date": {
      "format": "date-time",
      "type": [
        "null",
        "string"
      ]
    }
  },
  "type": "object"
}
Edited by Andrew Madonna