[
  {
    "name": "id_translation.fetching.sql-fetcher-toml.sql.discovery",
    "msg": "Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila): Metadata created in 111ms.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 405,
    "funcName": "_get_summaries",
    "created": 1557606600.152031,
    "msecs": 244.0,
    "relativeCreated": 823.8739967346191,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila): Metadata created in 111ms."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'str_uuid', 'comment', 'uuid'} for source='uuid_test_table'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.152133,
    "msecs": 244.0,
    "relativeCreated": 823.9946365356445,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "str_uuid",
      "comment",
      "uuid"
    ],
    "context": "uuid_test_table",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'str_uuid', 'comment', 'uuid'} for source='uuid_test_table'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='uuid_test_table' for ['id']x['str_uuid', 'comment', 'uuid'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.152463,
    "msecs": 244.0,
    "relativeCreated": 824.3229389190674,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='uuid_test_table' for ['id']x['str_uuid', 'comment', 'uuid'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.152511,
    "msecs": 244.0,
    "relativeCreated": 824.3794441223145,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'str_uuid', 'comment', 'uuid'} for source='uuid_test_table': {}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.154916,
    "msecs": 247.0,
    "relativeCreated": 826.7533779144287,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.002737696000622236,
    "mapping": {},
    "context": "uuid_test_table",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'str_uuid', 'comment', 'uuid'} for source='uuid_test_table': {}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Discarding table='uuid_test_table'; no suitable ID column found.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 442,
    "funcName": "_handle_unknown_table",
    "created": 1557606600.154962,
    "msecs": 247.0,
    "relativeCreated": 826.829195022583,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Discarding table='uuid_test_table'; no suitable ID column found."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'address2', 'address_id', 'address', 'postal_code', 'last_update', 'phone', 'district', 'city_id'} for source='address'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.155007,
    "msecs": 247.0,
    "relativeCreated": 826.8744945526123,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "address2",
      "address_id",
      "address",
      "postal_code",
      "last_update",
      "phone",
      "district",
      "city_id"
    ],
    "context": "address",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'address2', 'address_id', 'address', 'postal_code', 'last_update', 'phone', 'district', 'city_id'} for source='address'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='address' for ['id']x['address2', 'address_id', 'address', 'postal_code', 'last_update', 'phone', 'district', 'city_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.15523,
    "msecs": 247.0,
    "relativeCreated": 827.0730972290039,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='address' for ['id']x['address2', 'address_id', 'address', 'postal_code', 'last_update', 'phone', 'district', 'city_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.155281,
    "msecs": 247.0,
    "relativeCreated": 827.1486759185791,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'address2', 'address_id', 'address', 'postal_code', 'last_update', 'phone', 'district', 'city_id'} for source='address': {'id': ('address_id',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.15683,
    "msecs": 249.0,
    "relativeCreated": 828.6774158477783,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.001796948999981396,
    "mapping": {
      "id": [
        "address_id"
      ]
    },
    "context": "address",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'address2', 'address_id', 'address', 'postal_code', 'last_update', 'phone', 'district', 'city_id'} for source='address': {'id': ('address_id',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_06'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.156915,
    "msecs": 249.0,
    "relativeCreated": 828.7820816040039,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "staff_id",
      "customer_id",
      "amount",
      "payment_id",
      "rental_id",
      "payment_date"
    ],
    "context": "payment_p2007_06",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_06'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='payment_p2007_06' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.157078,
    "msecs": 249.0,
    "relativeCreated": 828.9456367492676,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='payment_p2007_06' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.157113,
    "msecs": 249.0,
    "relativeCreated": 828.9833068847656,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_06': {}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.157784,
    "msecs": 250.0,
    "relativeCreated": 829.6470642089844,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0008678519989189226,
    "mapping": {},
    "context": "payment_p2007_06",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_06': {}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Discarding table='payment_p2007_06'; no suitable ID column found.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 442,
    "funcName": "_handle_unknown_table",
    "created": 1557606600.157812,
    "msecs": 250.0,
    "relativeCreated": 829.6818733215332,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Discarding table='payment_p2007_06'; no suitable ID column found."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'} for source='film'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.157861,
    "msecs": 250.0,
    "relativeCreated": 829.7297954559326,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "title",
      "special_features",
      "description",
      "language_id",
      "rating",
      "replacement_cost",
      "original_language_id",
      "rental_rate",
      "release_year",
      "rental_duration",
      "fulltext",
      "film_id",
      "length",
      "last_update"
    ],
    "context": "film",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'} for source='film'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='film' for ['id']x['title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.157992,
    "msecs": 250.0,
    "relativeCreated": 829.8602104187012,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='film' for ['id']x['title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.158022,
    "msecs": 250.0,
    "relativeCreated": 829.8923969268799,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'} for source='film': {'id': ('film_id',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.159129,
    "msecs": 251.0,
    "relativeCreated": 830.9898376464844,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0012688280003203545,
    "mapping": {
      "id": [
        "film_id"
      ]
    },
    "context": "film",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'} for source='film': {'id': ('film_id',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'name', 'language_id', 'last_update'} for source='language'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.159181,
    "msecs": 251.0,
    "relativeCreated": 831.0484886169434,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "name",
      "language_id",
      "last_update"
    ],
    "context": "language",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'name', 'language_id', 'last_update'} for source='language'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='language' for ['id']x['name', 'language_id', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.159309,
    "msecs": 251.0,
    "relativeCreated": 831.1769962310791,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='language' for ['id']x['name', 'language_id', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.15934,
    "msecs": 251.0,
    "relativeCreated": 831.2103748321533,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'name', 'language_id', 'last_update'} for source='language': {'id': ('language_id',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.160106,
    "msecs": 252.0,
    "relativeCreated": 831.9671154022217,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.000915897000595578,
    "mapping": {
      "id": [
        "language_id"
      ]
    },
    "context": "language",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'name', 'language_id', 'last_update'} for source='language': {'id': ('language_id',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'} for source='customer'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.160155,
    "msecs": 252.0,
    "relativeCreated": 832.0233821868896,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "customer_id",
      "first_name",
      "address_id",
      "activebool",
      "email",
      "store_id",
      "active",
      "last_name",
      "create_date",
      "last_update"
    ],
    "context": "customer",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'} for source='customer'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='customer' for ['id']x['customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.160279,
    "msecs": 252.0,
    "relativeCreated": 832.1480751037598,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='customer' for ['id']x['customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.160309,
    "msecs": 252.0,
    "relativeCreated": 832.1797847747803,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'} for source='customer': {'id': ('customer_id',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.161256,
    "msecs": 253.0,
    "relativeCreated": 833.1186771392822,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0010944270015897928,
    "mapping": {
      "id": [
        "customer_id"
      ]
    },
    "context": "customer",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'} for source='customer': {'id': ('customer_id',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_04'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.161304,
    "msecs": 253.0,
    "relativeCreated": 833.1723213195801,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "staff_id",
      "customer_id",
      "amount",
      "payment_id",
      "rental_id",
      "payment_date"
    ],
    "context": "payment_p2007_04",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_04'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='payment_p2007_04' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.161426,
    "msecs": 253.0,
    "relativeCreated": 833.2951068878174,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='payment_p2007_04' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.161464,
    "msecs": 253.0,
    "relativeCreated": 833.3334922790527,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_04': {}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.162017,
    "msecs": 254.0,
    "relativeCreated": 833.8804244995117,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0007080619998305338,
    "mapping": {},
    "context": "payment_p2007_04",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_04': {}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Discarding table='payment_p2007_04'; no suitable ID column found.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 442,
    "funcName": "_handle_unknown_table",
    "created": 1557606600.162043,
    "msecs": 254.0,
    "relativeCreated": 833.9130878448486,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Discarding table='payment_p2007_04'; no suitable ID column found."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'actor_id', 'film_id'} for source='film_actor'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.162093,
    "msecs": 254.0,
    "relativeCreated": 833.9459896087646,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "last_update",
      "actor_id",
      "film_id"
    ],
    "context": "film_actor",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'actor_id', 'film_id'} for source='film_actor'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='film_actor' for ['id']x['last_update', 'actor_id', 'film_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.162223,
    "msecs": 254.0,
    "relativeCreated": 834.0914249420166,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='film_actor' for ['id']x['last_update', 'actor_id', 'film_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.162257,
    "msecs": 254.0,
    "relativeCreated": 834.1271877288818,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'actor_id', 'film_id'} for source='film_actor': {}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.163176,
    "msecs": 255.0,
    "relativeCreated": 835.031270980835,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0010819780000019819,
    "mapping": {},
    "context": "film_actor",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'actor_id', 'film_id'} for source='film_actor': {}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Discarding table='film_actor'; no suitable ID column found.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 442,
    "funcName": "_handle_unknown_table",
    "created": 1557606600.163211,
    "msecs": 255.0,
    "relativeCreated": 835.0801467895508,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Discarding table='film_actor'; no suitable ID column found."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_01'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.163251,
    "msecs": 255.0,
    "relativeCreated": 835.1199626922607,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "staff_id",
      "customer_id",
      "amount",
      "payment_id",
      "rental_id",
      "payment_date"
    ],
    "context": "payment_p2007_01",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_01'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='payment_p2007_01' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.163396,
    "msecs": 255.0,
    "relativeCreated": 835.2639675140381,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='payment_p2007_01' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.163429,
    "msecs": 255.0,
    "relativeCreated": 835.2982997894287,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_01': {}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.164141,
    "msecs": 256.0,
    "relativeCreated": 836.0002040863037,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.000879313000041293,
    "mapping": {},
    "context": "payment_p2007_01",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_01': {}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Discarding table='payment_p2007_01'; no suitable ID column found.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 442,
    "funcName": "_handle_unknown_table",
    "created": 1557606600.164172,
    "msecs": 256.0,
    "relativeCreated": 836.0419273376465,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Discarding table='payment_p2007_01'; no suitable ID column found."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'country', 'country_id'} for source='country'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.164208,
    "msecs": 256.0,
    "relativeCreated": 836.0774517059326,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "last_update",
      "country",
      "country_id"
    ],
    "context": "country",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'country', 'country_id'} for source='country'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='country' for ['id']x['last_update', 'country', 'country_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.164338,
    "msecs": 256.0,
    "relativeCreated": 836.2071514129639,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='country' for ['id']x['last_update', 'country', 'country_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.164368,
    "msecs": 256.0,
    "relativeCreated": 836.237907409668,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'country', 'country_id'} for source='country': {'id': ('country_id',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.165126,
    "msecs": 257.0,
    "relativeCreated": 836.986780166626,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0009081850002985448,
    "mapping": {
      "id": [
        "country_id"
      ]
    },
    "context": "country",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'country', 'country_id'} for source='country': {'id': ('country_id',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_02'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.165182,
    "msecs": 257.0,
    "relativeCreated": 837.0506763458252,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "staff_id",
      "customer_id",
      "amount",
      "payment_id",
      "rental_id",
      "payment_date"
    ],
    "context": "payment_p2007_02",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_02'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='payment_p2007_02' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.165306,
    "msecs": 257.0,
    "relativeCreated": 837.1751308441162,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='payment_p2007_02' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.165335,
    "msecs": 257.0,
    "relativeCreated": 837.205171585083,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_02': {}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.166128,
    "msecs": 258.0,
    "relativeCreated": 837.9800319671631,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0009246200006600702,
    "mapping": {},
    "context": "payment_p2007_02",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_02': {}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Discarding table='payment_p2007_02'; no suitable ID column found.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 442,
    "funcName": "_handle_unknown_table",
    "created": 1557606600.166167,
    "msecs": 258.0,
    "relativeCreated": 838.036298751831,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Discarding table='payment_p2007_02'; no suitable ID column found."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'category_id', 'film_id'} for source='film_category'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.166212,
    "msecs": 258.0,
    "relativeCreated": 838.0801677703857,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "last_update",
      "category_id",
      "film_id"
    ],
    "context": "film_category",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'category_id', 'film_id'} for source='film_category'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='film_category' for ['id']x['last_update', 'category_id', 'film_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.166393,
    "msecs": 258.0,
    "relativeCreated": 838.2554054260254,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='film_category' for ['id']x['last_update', 'category_id', 'film_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.166442,
    "msecs": 258.0,
    "relativeCreated": 838.3104801177979,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'category_id', 'film_id'} for source='film_category': {}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.168135,
    "msecs": 260.0,
    "relativeCreated": 839.9832248687744,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0019008899998880224,
    "mapping": {},
    "context": "film_category",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_update', 'category_id', 'film_id'} for source='film_category': {}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Discarding table='film_category'; no suitable ID column found.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 442,
    "funcName": "_handle_unknown_table",
    "created": 1557606600.168175,
    "msecs": 260.0,
    "relativeCreated": 840.0440216064453,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Discarding table='film_category'; no suitable ID column found."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'} for source='staff'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.168218,
    "msecs": 260.0,
    "relativeCreated": 840.0864601135254,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "staff_id",
      "first_name",
      "address_id",
      "username",
      "picture",
      "email",
      "password",
      "store_id",
      "active",
      "last_name",
      "last_update"
    ],
    "context": "staff",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'} for source='staff'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='staff' for ['id']x['staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.168392,
    "msecs": 260.0,
    "relativeCreated": 840.2602672576904,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='staff' for ['id']x['staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.168426,
    "msecs": 260.0,
    "relativeCreated": 840.2957916259766,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'} for source='staff': {'id': ('staff_id',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.169579,
    "msecs": 262.0,
    "relativeCreated": 841.4361476898193,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0013476479998644209,
    "mapping": {
      "id": [
        "staff_id"
      ]
    },
    "context": "staff",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'} for source='staff': {'id': ('staff_id',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_name', 'first_name', 'actor_id', 'last_update'} for source='actor'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.169634,
    "msecs": 262.0,
    "relativeCreated": 841.5024280548096,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "last_name",
      "first_name",
      "actor_id",
      "last_update"
    ],
    "context": "actor",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_name', 'first_name', 'actor_id', 'last_update'} for source='actor'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='actor' for ['id']x['last_name', 'first_name', 'actor_id', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.169766,
    "msecs": 262.0,
    "relativeCreated": 841.6347503662109,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='actor' for ['id']x['last_name', 'first_name', 'actor_id', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.169797,
    "msecs": 262.0,
    "relativeCreated": 841.6671752929688,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_name', 'first_name', 'actor_id', 'last_update'} for source='actor': {'id': ('actor_id',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.170671,
    "msecs": 263.0,
    "relativeCreated": 842.5240516662598,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0010168770004383987,
    "mapping": {
      "id": [
        "actor_id"
      ]
    },
    "context": "actor",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'last_name', 'first_name', 'actor_id', 'last_update'} for source='actor': {'id': ('actor_id',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'country_id', 'last_update', 'city', 'city_id'} for source='city'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.170739,
    "msecs": 263.0,
    "relativeCreated": 842.606782913208,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "country_id",
      "last_update",
      "city",
      "city_id"
    ],
    "context": "city",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'country_id', 'last_update', 'city', 'city_id'} for source='city'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='city' for ['id']x['country_id', 'last_update', 'city', 'city_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.170902,
    "msecs": 263.0,
    "relativeCreated": 842.7700996398926,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='city' for ['id']x['country_id', 'last_update', 'city', 'city_id'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.170934,
    "msecs": 263.0,
    "relativeCreated": 842.8032398223877,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'country_id', 'last_update', 'city', 'city_id'} for source='city': {'id': ('city_id',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.171835,
    "msecs": 264.0,
    "relativeCreated": 843.696117401123,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.001089904999389546,
    "mapping": {
      "id": [
        "city_id"
      ]
    },
    "context": "city",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'country_id', 'last_update', 'city', 'city_id'} for source='city': {'id': ('city_id',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_03'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.171926,
    "msecs": 264.0,
    "relativeCreated": 843.7938690185547,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "staff_id",
      "customer_id",
      "amount",
      "payment_id",
      "rental_id",
      "payment_date"
    ],
    "context": "payment_p2007_03",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_03'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='payment_p2007_03' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.172064,
    "msecs": 264.0,
    "relativeCreated": 843.9319133758545,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='payment_p2007_03' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.172096,
    "msecs": 264.0,
    "relativeCreated": 843.966007232666,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_03': {}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.172673,
    "msecs": 265.0,
    "relativeCreated": 844.5374965667725,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0007442280002578627,
    "mapping": {},
    "context": "payment_p2007_03",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_03': {}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Discarding table='payment_p2007_03'; no suitable ID column found.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 442,
    "funcName": "_handle_unknown_table",
    "created": 1557606600.1727,
    "msecs": 265.0,
    "relativeCreated": 844.5699214935303,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Discarding table='payment_p2007_03'; no suitable ID column found."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_05'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.172734,
    "msecs": 265.0,
    "relativeCreated": 844.6028232574463,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "id"
    ],
    "candidates": [
      "staff_id",
      "customer_id",
      "amount",
      "payment_id",
      "rental_id",
      "payment_date"
    ],
    "context": "payment_p2007_05",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_05'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='payment_p2007_05' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.172859,
    "msecs": 265.0,
    "relativeCreated": 844.7268009185791,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='payment_p2007_05' for ['id']x['staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['id'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.172892,
    "msecs": 265.0,
    "relativeCreated": 844.7592258453369,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['id']."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_05': {}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.173404,
    "msecs": 265.0,
    "relativeCreated": 845.2692031860352,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 123867995619856,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.0006676390003121924,
    "mapping": {},
    "context": "payment_p2007_05",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'id'} to actual placeholders={'staff_id', 'customer_id', 'amount', 'payment_id', 'rental_id', 'payment_date'} for source='payment_p2007_05': {}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Discarding table='payment_p2007_05'; no suitable ID column found.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 442,
    "funcName": "_handle_unknown_table",
    "created": 1557606600.173429,
    "msecs": 265.0,
    "relativeCreated": 845.2987670898438,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Discarding table='payment_p2007_05'; no suitable ID column found."
  },
  {
    "name": "id_translation.dio",
    "msg": "Using rank-4 implementation id_translation.dio.PandasIO() for translatable of type='DataFrame'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/dio/_resolve.py",
    "filename": "_resolve.py",
    "module": "_resolve",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 72,
    "funcName": "_initialize",
    "created": 1557606600.381886,
    "msecs": 474.0,
    "relativeCreated": 1053.7121295928955,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Using rank-4 implementation id_translation.dio.PandasIO() for translatable of type='DataFrame'."
  },
  {
    "name": "id_translation.Translator.translate",
    "msg": "Begin translation of 'DataFrame'-type data. Names to translate: Derive based on type='DataFrame'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/_tasks/_translate.py",
    "filename": "_translate.py",
    "module": "_translate",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 149,
    "funcName": "log_key_event_enter",
    "created": 1557606600.381976,
    "msecs": 474.0,
    "relativeCreated": 1053.8432598114014,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "TRANSLATOR.TRANSLATE",
    "event_stage": "ENTER",
    "event_title": "TRANSLATOR.TRANSLATE.ENTER",
    "sources": [
      "category",
      "address",
      "film",
      "language",
      "customer",
      "country",
      "staff",
      "actor",
      "city"
    ],
    "online": true,
    "translatable_type": "pandas.core.frame.DataFrame",
    "names": null,
    "ignore_names": null,
    "copy": false,
    "reverse": false,
    "message": "Begin translation of 'DataFrame'-type data. Names to translate: Derive based on type='DataFrame'."
  },
  {
    "name": "id_translation.Translator.names",
    "msg": "Name extraction complete. Found names=['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date'] for 'DataFrame'-type data.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/_tasks/_names.py",
    "filename": "_names.py",
    "module": "_names",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 96,
    "funcName": "_filter_names",
    "created": 1557606600.382031,
    "msecs": 474.0,
    "relativeCreated": 1053.9021492004395,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Name extraction complete. Found names=['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date'] for 'DataFrame'-type data."
  },
  {
    "name": "id_translation.Translator.map",
    "msg": "Begin name-to-source mapping of names=['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date'] in 'DataFrame' against sources=['category', 'address', 'film', 'language', 'customer', 'country', 'staff', 'actor', 'city'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/_tasks/_map.py",
    "filename": "_map.py",
    "module": "_map",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 75,
    "funcName": "_map",
    "created": 1557606600.382098,
    "msecs": 474.0,
    "relativeCreated": 1053.9674758911133,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "TRANSLATOR.MAP",
    "event_stage": "ENTER",
    "event_title": "TRANSLATOR.MAP.ENTER",
    "translatable_type": "'DataFrame'",
    "values": [
      "customer_id",
      "film_id",
      "category_id",
      "staff_id",
      "rental_date",
      "return_date"
    ],
    "candidates": [
      "category",
      "address",
      "film",
      "language",
      "customer",
      "country",
      "staff",
      "actor",
      "city"
    ],
    "context": null,
    "message": "Begin name-to-source mapping of names=['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date'] in 'DataFrame' against sources=['category', 'address', 'film', 'language', 'customer', 'country', 'staff', 'actor', 'city']."
  },
  {
    "name": "id_translation.mapping.name-to-source",
    "msg": "Begin computing match scores for ['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date']x['category', 'address', 'film', 'language', 'customer', 'country', 'staff', 'actor', 'city'] using HeuristicScore([like_database_table()] -> modified_hamming).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.382295,
    "msecs": 474.0,
    "relativeCreated": 1054.1646480560303,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Begin computing match scores for ['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date']x['category', 'address', 'film', 'language', 'customer', 'country', 'staff', 'actor', 'city'] using HeuristicScore([like_database_table()] -> modified_hamming)."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Compute match scores for value='customer_id'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.382393,
    "msecs": 474.0,
    "relativeCreated": 1054.2640686035156,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='customer_id'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function like_database_table() in context=None:\n    ('customer_id', ['address', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']) -> ('customer', ['addres', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']).\n    Positional penalty=0.000. Scores before penalty: [0.056, -0.001, 0.123, 0.997, -0.004, -0.005, -0.006, 0.043, -0.008].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.382487,
    "msecs": 474.0,
    "relativeCreated": 1054.3582439422607,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function like_database_table() in context=None:\n    ('customer_id', ['address', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']) -> ('customer', ['addres', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']).\n    Positional penalty=0.000. Scores before penalty: [0.056, -0.001, 0.123, 0.997, -0.004, -0.005, -0.006, 0.043, -0.008]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='customer_id': ['address': 0.03 -> 0.06 (+0.03), 'film': -0.00 -> -0.00 (+0.00), 'category': 0.03 -> 0.12 (+0.09), 'customer': -0.00 -> 1.00 (+1.00), 'language': -0.00 -> -0.00 (+0.00), 'country': -0.01 -> -0.01 (+0.00), 'staff': -0.01 -> -0.01 (+0.00), 'actor': -0.01 -> 0.04 (+0.05), 'city': -0.01 -> -0.01 (+0.00)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.382521,
    "msecs": 474.0,
    "relativeCreated": 1054.3925762176514,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='customer_id': ['address': 0.03 -> 0.06 (+0.03), 'film': -0.00 -> -0.00 (+0.00), 'category': 0.03 -> 0.12 (+0.09), 'customer': -0.00 -> 1.00 (+1.00), 'language': -0.00 -> -0.00 (+0.00), 'country': -0.01 -> -0.01 (+0.00), 'staff': -0.01 -> -0.01 (+0.00), 'actor': -0.01 -> 0.04 (+0.05), 'city': -0.01 -> -0.01 (+0.00)]"
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Compute match scores for value='film_id'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.382791,
    "msecs": 475.0,
    "relativeCreated": 1054.661512374878,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='film_id'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function like_database_table() in context=None:\n    ('film_id', ['address', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']) -> ('film', ['addres', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']).\n    Positional penalty=0.000. Scores before penalty: [0.0, 0.999, -0.002, -0.003, -0.004, -0.005, -0.006, -0.007, 0.242].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.382868,
    "msecs": 475.0,
    "relativeCreated": 1054.7387599945068,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function like_database_table() in context=None:\n    ('film_id', ['address', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']) -> ('film', ['addres', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']).\n    Positional penalty=0.000. Scores before penalty: [0.0, 0.999, -0.002, -0.003, -0.004, -0.005, -0.006, -0.007, 0.242]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='film_id': ['address': 0.00 -> 0.00 (+0.00), 'film': -0.00 -> 1.00 (+1.00), 'category': -0.00 -> -0.00 (+0.00), 'customer': -0.00 -> -0.00 (+0.00), 'language': -0.00 -> -0.00 (+0.00), 'country': -0.01 -> -0.01 (+0.00), 'staff': -0.01 -> -0.01 (+0.00), 'actor': -0.01 -> -0.01 (+0.00), 'city': -0.01 -> 0.24 (+0.25)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.382897,
    "msecs": 475.0,
    "relativeCreated": 1054.7685623168945,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='film_id': ['address': 0.00 -> 0.00 (+0.00), 'film': -0.00 -> 1.00 (+1.00), 'category': -0.00 -> -0.00 (+0.00), 'customer': -0.00 -> -0.00 (+0.00), 'language': -0.00 -> -0.00 (+0.00), 'country': -0.01 -> -0.01 (+0.00), 'staff': -0.01 -> -0.01 (+0.00), 'actor': -0.01 -> -0.01 (+0.00), 'city': -0.01 -> 0.24 (+0.25)]"
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Compute match scores for value='category_id'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.383125,
    "msecs": 475.0,
    "relativeCreated": 1054.9957752227783,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='category_id'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function like_database_table() in context=None:\n    ('category_id', ['address', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']) -> ('category', ['addres', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']).\n    Positional penalty=0.000. Scores before penalty: [0.0, -0.001, 0.998, 0.122, 0.121, 0.138, -0.006, -0.007, 0.042].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.383189,
    "msecs": 475.0,
    "relativeCreated": 1055.0603866577148,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function like_database_table() in context=None:\n    ('category_id', ['address', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']) -> ('category', ['addres', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']).\n    Positional penalty=0.000. Scores before penalty: [0.0, -0.001, 0.998, 0.122, 0.121, 0.138, -0.006, -0.007, 0.042]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='category_id': ['address': 0.00 -> 0.00 (+0.00), 'film': -0.00 -> -0.00 (+0.00), 'category': -0.00 -> 1.00 (+1.00), 'customer': -0.00 -> 0.12 (+0.12), 'language': -0.00 -> 0.12 (+0.12), 'country': 0.02 -> 0.14 (+0.11), 'staff': -0.01 -> -0.01 (+0.00), 'actor': -0.01 -> -0.01 (+0.00), 'city': -0.01 -> 0.04 (+0.05)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.383215,
    "msecs": 475.0,
    "relativeCreated": 1055.0873279571533,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='category_id': ['address': 0.00 -> 0.00 (+0.00), 'film': -0.00 -> -0.00 (+0.00), 'category': -0.00 -> 1.00 (+1.00), 'customer': -0.00 -> 0.12 (+0.12), 'language': -0.00 -> 0.12 (+0.12), 'country': 0.02 -> 0.14 (+0.11), 'staff': -0.01 -> -0.01 (+0.00), 'actor': -0.01 -> -0.01 (+0.00), 'city': -0.01 -> 0.04 (+0.05)]"
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Compute match scores for value='staff_id'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.383433,
    "msecs": 475.0,
    "relativeCreated": 1055.3035736083984,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='staff_id'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function like_database_table() in context=None:\n    ('staff_id', ['address', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']) -> ('staff', ['addres', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']).\n    Positional penalty=0.000. Scores before penalty: [0.0, -0.001, -0.002, -0.003, 0.046, -0.005, 0.994, -0.007, -0.008].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.383495,
    "msecs": 475.0,
    "relativeCreated": 1055.366039276123,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function like_database_table() in context=None:\n    ('staff_id', ['address', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']) -> ('staff', ['addres', 'film', 'category', 'customer', 'language', 'country', 'staff', 'actor', 'city']).\n    Positional penalty=0.000. Scores before penalty: [0.0, -0.001, -0.002, -0.003, 0.046, -0.005, 0.994, -0.007, -0.008]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='staff_id': ['address': 0.00 -> 0.00 (+0.00), 'film': 0.05 -> 0.05 (+0.00), 'category': -0.00 -> -0.00 (+0.00), 'customer': -0.00 -> -0.00 (+0.00), 'language': -0.00 -> 0.05 (+0.05), 'country': -0.01 -> -0.01 (+0.00), 'staff': -0.01 -> 0.99 (+1.00), 'actor': -0.01 -> -0.01 (+0.00), 'city': -0.01 -> -0.01 (+0.00)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.383521,
    "msecs": 475.0,
    "relativeCreated": 1055.3925037384033,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='staff_id': ['address': 0.00 -> 0.00 (+0.00), 'film': 0.05 -> 0.05 (+0.00), 'category': -0.00 -> -0.00 (+0.00), 'customer': -0.00 -> -0.00 (+0.00), 'language': -0.00 -> 0.05 (+0.05), 'country': -0.01 -> -0.01 (+0.00), 'staff': -0.01 -> 0.99 (+1.00), 'actor': -0.01 -> -0.01 (+0.00), 'city': -0.01 -> -0.01 (+0.00)]"
  },
  {
    "name": "id_translation.mapping.verbose.filter_functions.filter_names",
    "msg": "%s %s='rental_date'; %s pattern=re.compile('.*_id$', re.IGNORECASE).",
    "args": [
      "Do not translate",
      "name",
      "does not match"
    ],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/filter_functions.py",
    "filename": "filter_functions.py",
    "module": "filter_functions",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 189,
    "funcName": "_filter_single",
    "created": 1557606600.383761,
    "msecs": 476.0,
    "relativeCreated": 1055.631399154663,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Do not translate name='rental_date'; does not match pattern=re.compile('.*_id$', re.IGNORECASE)."
  },
  {
    "name": "id_translation.mapping.verbose.filter_functions.filter_names",
    "msg": "%s %s='return_date'; %s pattern=re.compile('.*_id$', re.IGNORECASE).",
    "args": [
      "Do not translate",
      "name",
      "does not match"
    ],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/filter_functions.py",
    "filename": "filter_functions.py",
    "module": "filter_functions",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 189,
    "funcName": "_filter_single",
    "created": 1557606600.383787,
    "msecs": 476.0,
    "relativeCreated": 1055.6588172912598,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Do not translate name='return_date'; does not match pattern=re.compile('.*_id$', re.IGNORECASE)."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Computed 6x9 match scores in 2ms:\ncandidates   category   address   film  language  customer   country  staff  actor   city\nvalues                                                                                   \ncustomer_id     0.123  0.055556 -0.001    -0.004     0.997 -0.005000 -0.006  0.043 -0.008\nfilm_id        -0.002  0.000000  0.999    -0.004    -0.003 -0.005000 -0.006 -0.007  0.242\ncategory_id     0.998  0.000000 -0.001     0.121     0.122  0.137857 -0.006 -0.007  0.042\nstaff_id       -0.002  0.000000  0.049     0.046    -0.003 -0.005000  0.994 -0.007 -0.008\nrental_date      -inf      -inf   -inf      -inf      -inf      -inf   -inf   -inf   -inf\nreturn_date      -inf      -inf   -inf      -inf      -inf      -inf   -inf   -inf   -inf",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 263,
    "funcName": "compute_scores",
    "created": 1557606600.38554,
    "msecs": 477.0,
    "relativeCreated": 1057.3999881744385,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Computed 6x9 match scores in 2ms:\ncandidates   category   address   film  language  customer   country  staff  actor   city\nvalues                                                                                   \ncustomer_id     0.123  0.055556 -0.001    -0.004     0.997 -0.005000 -0.006  0.043 -0.008\nfilm_id        -0.002  0.000000  0.999    -0.004    -0.003 -0.005000 -0.006 -0.007  0.242\ncategory_id     0.998  0.000000 -0.001     0.121     0.122  0.137857 -0.006 -0.007  0.042\nstaff_id       -0.002  0.000000  0.049     0.046    -0.003 -0.005000  0.994 -0.007 -0.008\nrental_date      -inf      -inf   -inf      -inf      -inf      -inf   -inf   -inf   -inf\nreturn_date      -inf      -inf   -inf      -inf      -inf      -inf   -inf   -inf   -inf"
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Accepted: 'film_id' -> 'film'; score=0.999 >= 0.9.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.386349,
    "msecs": 478.0,
    "relativeCreated": 1058.2127571105957,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'film_id' -> 'film'; score=0.999 >= 0.9."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "This match supersedes 8 other matches:\n    'film_id' -> 'city'; score=0.242 < 0.9 (below threshold).\n    'film_id' -> 'address'; score=0.000 < 0.9 (below threshold).\n    'film_id' -> 'category'; score=-0.002 < 0.9 (below threshold).\n    'film_id' -> 'customer'; score=-0.003 < 0.9 (below threshold).\n    'film_id' -> 'language'; score=-0.004 < 0.9 (below threshold).\n    'film_id' -> 'country'; score=-0.005 < 0.9 (below threshold).\n    'film_id' -> 'staff'; score=-0.006 < 0.9 (below threshold).\n    'film_id' -> 'actor'; score=-0.007 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.386388,
    "msecs": 478.0,
    "relativeCreated": 1058.2587718963623,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 8 other matches:\n    'film_id' -> 'city'; score=0.242 < 0.9 (below threshold).\n    'film_id' -> 'address'; score=0.000 < 0.9 (below threshold).\n    'film_id' -> 'category'; score=-0.002 < 0.9 (below threshold).\n    'film_id' -> 'customer'; score=-0.003 < 0.9 (below threshold).\n    'film_id' -> 'language'; score=-0.004 < 0.9 (below threshold).\n    'film_id' -> 'country'; score=-0.005 < 0.9 (below threshold).\n    'film_id' -> 'staff'; score=-0.006 < 0.9 (below threshold).\n    'film_id' -> 'actor'; score=-0.007 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Accepted: 'category_id' -> 'category'; score=0.998 >= 0.9.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.386535,
    "msecs": 478.0,
    "relativeCreated": 1058.3884716033936,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'category_id' -> 'category'; score=0.998 >= 0.9."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "This match supersedes 8 other matches:\n    'category_id' -> 'country'; score=0.138 < 0.9 (below threshold).\n    'category_id' -> 'customer'; score=0.122 < 0.9 (below threshold).\n    'category_id' -> 'language'; score=0.121 < 0.9 (below threshold).\n    'category_id' -> 'city'; score=0.042 < 0.9 (below threshold).\n    'category_id' -> 'address'; score=0.000 < 0.9 (below threshold).\n    'category_id' -> 'film'; score=-0.001 < 0.9 (below threshold).\n    'category_id' -> 'staff'; score=-0.006 < 0.9 (below threshold).\n    'category_id' -> 'actor'; score=-0.007 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.386584,
    "msecs": 479.0,
    "relativeCreated": 1058.4545135498047,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 8 other matches:\n    'category_id' -> 'country'; score=0.138 < 0.9 (below threshold).\n    'category_id' -> 'customer'; score=0.122 < 0.9 (below threshold).\n    'category_id' -> 'language'; score=0.121 < 0.9 (below threshold).\n    'category_id' -> 'city'; score=0.042 < 0.9 (below threshold).\n    'category_id' -> 'address'; score=0.000 < 0.9 (below threshold).\n    'category_id' -> 'film'; score=-0.001 < 0.9 (below threshold).\n    'category_id' -> 'staff'; score=-0.006 < 0.9 (below threshold).\n    'category_id' -> 'actor'; score=-0.007 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Accepted: 'customer_id' -> 'customer'; score=0.997 >= 0.9.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.386662,
    "msecs": 479.0,
    "relativeCreated": 1058.488130569458,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'customer_id' -> 'customer'; score=0.997 >= 0.9."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "This match supersedes 8 other matches:\n    'customer_id' -> 'category'; score=0.123 < 0.9 (below threshold).\n    'customer_id' -> 'address'; score=0.056 < 0.9 (below threshold).\n    'customer_id' -> 'actor'; score=0.043 < 0.9 (below threshold).\n    'customer_id' -> 'film'; score=-0.001 < 0.9 (below threshold).\n    'customer_id' -> 'language'; score=-0.004 < 0.9 (below threshold).\n    'customer_id' -> 'country'; score=-0.005 < 0.9 (below threshold).\n    'customer_id' -> 'staff'; score=-0.006 < 0.9 (below threshold).\n    'customer_id' -> 'city'; score=-0.008 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.38672,
    "msecs": 479.0,
    "relativeCreated": 1058.5856437683105,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 8 other matches:\n    'customer_id' -> 'category'; score=0.123 < 0.9 (below threshold).\n    'customer_id' -> 'address'; score=0.056 < 0.9 (below threshold).\n    'customer_id' -> 'actor'; score=0.043 < 0.9 (below threshold).\n    'customer_id' -> 'film'; score=-0.001 < 0.9 (below threshold).\n    'customer_id' -> 'language'; score=-0.004 < 0.9 (below threshold).\n    'customer_id' -> 'country'; score=-0.005 < 0.9 (below threshold).\n    'customer_id' -> 'staff'; score=-0.006 < 0.9 (below threshold).\n    'customer_id' -> 'city'; score=-0.008 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Accepted: 'staff_id' -> 'staff'; score=0.994 >= 0.9.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.38675,
    "msecs": 479.0,
    "relativeCreated": 1058.6211681365967,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'staff_id' -> 'staff'; score=0.994 >= 0.9."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "This match supersedes 8 other matches:\n    'staff_id' -> 'film'; score=0.049 < 0.9 (below threshold).\n    'staff_id' -> 'language'; score=0.046 < 0.9 (below threshold).\n    'staff_id' -> 'address'; score=0.000 < 0.9 (below threshold).\n    'staff_id' -> 'category'; score=-0.002 < 0.9 (below threshold).\n    'staff_id' -> 'customer'; score=-0.003 < 0.9 (below threshold).\n    'staff_id' -> 'country'; score=-0.005 < 0.9 (below threshold).\n    'staff_id' -> 'actor'; score=-0.007 < 0.9 (below threshold).\n    'staff_id' -> 'city'; score=-0.008 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.386774,
    "msecs": 479.0,
    "relativeCreated": 1058.6462020874023,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 8 other matches:\n    'staff_id' -> 'film'; score=0.049 < 0.9 (below threshold).\n    'staff_id' -> 'language'; score=0.046 < 0.9 (below threshold).\n    'staff_id' -> 'address'; score=0.000 < 0.9 (below threshold).\n    'staff_id' -> 'category'; score=-0.002 < 0.9 (below threshold).\n    'staff_id' -> 'customer'; score=-0.003 < 0.9 (below threshold).\n    'staff_id' -> 'country'; score=-0.005 < 0.9 (below threshold).\n    'staff_id' -> 'actor'; score=-0.007 < 0.9 (below threshold).\n    'staff_id' -> 'city'; score=-0.008 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Could not map value='rental_date':\n    'rental_date' -> 'category'; score=-inf (filtered).\n    'rental_date' -> 'address'; score=-inf (filtered).\n    'rental_date' -> 'film'; score=-inf (filtered).\n    'rental_date' -> 'language'; score=-inf (filtered).\n    'rental_date' -> 'customer'; score=-inf (filtered).\n    'rental_date' -> 'country'; score=-inf (filtered).\n    'rental_date' -> 'staff'; score=-inf (filtered).\n    'rental_date' -> 'actor'; score=-inf (filtered).\n    'rental_date' -> 'city'; score=-inf (filtered).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 127,
    "funcName": "to_directional_mapping",
    "created": 1557606600.387017,
    "msecs": 479.0,
    "relativeCreated": 1058.8855743408203,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Could not map value='rental_date':\n    'rental_date' -> 'category'; score=-inf (filtered).\n    'rental_date' -> 'address'; score=-inf (filtered).\n    'rental_date' -> 'film'; score=-inf (filtered).\n    'rental_date' -> 'language'; score=-inf (filtered).\n    'rental_date' -> 'customer'; score=-inf (filtered).\n    'rental_date' -> 'country'; score=-inf (filtered).\n    'rental_date' -> 'staff'; score=-inf (filtered).\n    'rental_date' -> 'actor'; score=-inf (filtered).\n    'rental_date' -> 'city'; score=-inf (filtered)."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Could not map value='return_date':\n    'return_date' -> 'category'; score=-inf (filtered).\n    'return_date' -> 'address'; score=-inf (filtered).\n    'return_date' -> 'film'; score=-inf (filtered).\n    'return_date' -> 'language'; score=-inf (filtered).\n    'return_date' -> 'customer'; score=-inf (filtered).\n    'return_date' -> 'country'; score=-inf (filtered).\n    'return_date' -> 'staff'; score=-inf (filtered).\n    'return_date' -> 'actor'; score=-inf (filtered).\n    'return_date' -> 'city'; score=-inf (filtered).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 127,
    "funcName": "to_directional_mapping",
    "created": 1557606600.387048,
    "msecs": 479.0,
    "relativeCreated": 1058.9194297790527,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Could not map value='return_date':\n    'return_date' -> 'category'; score=-inf (filtered).\n    'return_date' -> 'address'; score=-inf (filtered).\n    'return_date' -> 'film'; score=-inf (filtered).\n    'return_date' -> 'language'; score=-inf (filtered).\n    'return_date' -> 'customer'; score=-inf (filtered).\n    'return_date' -> 'country'; score=-inf (filtered).\n    'return_date' -> 'staff'; score=-inf (filtered).\n    'return_date' -> 'actor'; score=-inf (filtered).\n    'return_date' -> 'city'; score=-inf (filtered)."
  },
  {
    "name": "id_translation.mapping.name-to-source.verbose",
    "msg": "Mapping with cardinality='ManyToOne' completed for ['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date']x['category', 'address', 'film', 'language', 'customer', 'country', 'staff', 'actor', 'city'] in 5ms. Matches:\n    'customer_id' -> ('customer',)\n    'film_id' -> ('film',)\n    'category_id' -> ('category',)\n    'staff_id' -> ('staff',)\n    'rental_date' -> <no matches>\n    'return_date' -> <no matches>\nMatched 4/6 values with 4 different candidates.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 167,
    "funcName": "apply",
    "created": 1557606600.387431,
    "msecs": 479.0,
    "relativeCreated": 1059.2989921569824,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Mapping with cardinality='ManyToOne' completed for ['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date']x['category', 'address', 'film', 'language', 'customer', 'country', 'staff', 'actor', 'city'] in 5ms. Matches:\n    'customer_id' -> ('customer',)\n    'film_id' -> ('film',)\n    'category_id' -> ('category',)\n    'staff_id' -> ('staff',)\n    'rental_date' -> <no matches>\n    'return_date' -> <no matches>\nMatched 4/6 values with 4 different candidates."
  },
  {
    "name": "id_translation.Translator.map",
    "msg": "Finished name-to-source mapping of names=['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date'] in 'DataFrame' against sources=['category', 'address', 'film', 'language', 'customer', 'country', 'staff', 'actor', 'city']: {'customer_id': 'customer', 'film_id': 'film', 'category_id': 'category', 'staff_id': 'staff'}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/_tasks/_map.py",
    "filename": "_map.py",
    "module": "_map",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 95,
    "funcName": "_map",
    "created": 1557606600.387477,
    "msecs": 479.0,
    "relativeCreated": 1059.34476852417,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "TRANSLATOR.MAP",
    "event_stage": "EXIT",
    "event_title": "TRANSLATOR.MAP.EXIT",
    "execution_time": 0.00546601499991084,
    "translatable_type": "'DataFrame'",
    "mapping": {
      "customer_id": "customer",
      "film_id": "film",
      "category_id": "category",
      "staff_id": "staff"
    },
    "context": null,
    "message": "Finished name-to-source mapping of names=['customer_id', 'film_id', 'category_id', 'staff_id', 'rental_date', 'return_date'] in 'DataFrame' against sources=['category', 'address', 'film', 'language', 'customer', 'country', 'staff', 'actor', 'city']: {'customer_id': 'customer', 'film_id': 'film', 'category_id': 'category', 'staff_id': 'staff'}."
  },
  {
    "name": "id_translation.fetching.MultiFetcher",
    "msg": "Dispatch FETCH jobs for 4 sources using 2 different fetchers on 2 threads.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_multi_fetcher.py",
    "filename": "_multi_fetcher.py",
    "module": "_multi_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 245,
    "funcName": "fetch",
    "created": 1557606600.387713,
    "msecs": 480.0,
    "relativeCreated": 1059.5455169677734,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "MULTIFETCHER.FETCH",
    "event_stage": "ENTER",
    "event_title": "MULTIFETCHER.FETCH.ENTER",
    "sources": [
      "customer",
      "film",
      "category",
      "staff"
    ],
    "placeholders": [
      "id",
      "name",
      "last_name"
    ],
    "required_placeholders": [
      "id",
      "name"
    ],
    "max_workers": 2,
    "num_fetchers": 2,
    "fetch_all": false,
    "message": "Dispatch FETCH jobs for 4 sources using 2 different fetchers on 2 threads."
  },
  {
    "name": "id_translation.fetching.MultiFetcher",
    "msg": "Begin FETCH job for 3 sources using rank-1 fetcher SqlFetcher(Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila), blacklist={'store', 'category', 'inventory', 'rental', 'payment'}) at 0x70a83c11ab50.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_multi_fetcher.py",
    "filename": "_multi_fetcher.py",
    "module": "_multi_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 265,
    "funcName": "fetch",
    "created": 1557606600.388046,
    "msecs": 480.0,
    "relativeCreated": 1059.9112510681152,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Begin FETCH job for 3 sources using rank-1 fetcher SqlFetcher(Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila), blacklist={'store', 'category', 'inventory', 'rental', 'payment'}) at 0x70a83c11ab50."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'} for source='customer'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.388096,
    "msecs": 480.0,
    "relativeCreated": 1059.9596500396729,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "last_name",
      "id",
      "name"
    ],
    "candidates": [
      "customer_id",
      "first_name",
      "address_id",
      "activebool",
      "email",
      "store_id",
      "active",
      "last_name",
      "create_date",
      "last_update"
    ],
    "context": "customer",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'} for source='customer'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='customer' for ['last_name', 'id', 'name']x['customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.388325,
    "msecs": 480.0,
    "relativeCreated": 1060.185194015503,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='customer' for ['last_name', 'id', 'name']x['customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['last_name', 'id', 'name'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.388388,
    "msecs": 480.0,
    "relativeCreated": 1060.253381729126,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['last_name', 'id', 'name']."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Compute match scores for value='id'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.388715,
    "msecs": 481.0,
    "relativeCreated": 1060.5840682983398,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='id'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function force_lower_case() in context='customer':\n    ('id', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.1, 0.11, -0.002, -0.003, 0.121, 0.138, -0.006, -0.007, -0.008, -0.009].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.388793,
    "msecs": 481.0,
    "relativeCreated": 1060.6625080108643,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function force_lower_case() in context='customer':\n    ('id', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.1, 0.11, -0.002, -0.003, 0.121, 0.138, -0.006, -0.007, -0.008, -0.009]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='customer':\n    ('id', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('first_id', *).\n    Positional penalty=0.005. Scores before penalty: [0.094, 0.166, -0.002, 0.039, 0.046, 0.37, 0.05, -0.007, -0.008, -0.009].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.388865,
    "msecs": 481.0,
    "relativeCreated": 1060.7352256774902,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='customer':\n    ('id', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('first_id', *).\n    Positional penalty=0.005. Scores before penalty: [0.094, 0.166, -0.002, 0.039, 0.046, 0.37, 0.05, -0.007, -0.008, -0.009]."
  },
  {
    "name": "id_translation.fetching.MultiFetcher",
    "msg": "Begin FETCH job for 1 sources using rank-0 fetcher MemoryFetcher(sources=['category']) at 0x70a83c119390.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_multi_fetcher.py",
    "filename": "_multi_fetcher.py",
    "module": "_multi_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 265,
    "funcName": "fetch",
    "created": 1557606600.389118,
    "msecs": 481.0,
    "relativeCreated": 1060.9869956970215,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Begin FETCH job for 1 sources using rank-0 fetcher MemoryFetcher(sources=['category']) at 0x70a83c119390."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='customer':\n    ('id', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('customer_id', *).\n    Positional penalty=0.010. Scores before penalty: [1.0, 0.149, -0.002, 0.097, 0.053, 0.089, -0.006, -0.007, 0.083, 0.173].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.390652,
    "msecs": 483.0,
    "relativeCreated": 1062.5176429748535,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='customer':\n    ('id', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('customer_id', *).\n    Positional penalty=0.010. Scores before penalty: [1.0, 0.149, -0.002, 0.097, 0.053, 0.089, -0.006, -0.007, 0.083, 0.173]."
  },
  {
    "name": "id_translation.fetching.translation-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'id', 'name'} for source='category'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.390744,
    "msecs": 483.0,
    "relativeCreated": 1062.605381011963,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "MEMORYFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "MEMORYFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "last_name",
      "id",
      "name"
    ],
    "candidates": [
      "id",
      "name"
    ],
    "context": "category",
    "config_file": "translation.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'id', 'name'} for source='category'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='customer':\n    ('id', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> (*, *).\n    Positional penalty=0.015. Scores before penalty: [0.1, 0.11, -0.002, -0.003, 0.121, 0.138, -0.006, -0.007, -0.008, -0.009].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.390831,
    "msecs": 483.0,
    "relativeCreated": 1062.6990795135498,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='customer':\n    ('id', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> (*, *).\n    Positional penalty=0.015. Scores before penalty: [0.1, 0.11, -0.002, -0.003, 0.121, 0.138, -0.006, -0.007, -0.008, -0.009]."
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml",
    "msg": "Begin computing match scores in context='category' for ['last_name', 'id', 'name']x['id', 'name'] using HeuristicScore([force_lower_case()] -> MemoryFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.391084,
    "msecs": 483.0,
    "relativeCreated": 1062.9494190216064,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "translation.toml",
    "message": "Begin computing match scores in context='category' for ['last_name', 'id', 'name']x['id', 'name'] using HeuristicScore([force_lower_case()] -> MemoryFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='id': ['customer_id': 0.10 -> 0.99 (+0.89), 'address_id': 0.11 -> 0.16 (+0.05), 'first_name': -0.00 -> -0.00 (+0.00), 'activebool': -0.00 -> 0.09 (+0.09), 'email': 0.12 -> 0.12 (+0.00), 'store_id': 0.14 -> 0.36 (+0.23), 'active': -0.01 -> 0.04 (+0.05), 'last_name': -0.01 -> -0.01 (+0.00), 'create_date': -0.01 -> 0.07 (+0.08), 'last_update': -0.01 -> 0.16 (+0.17)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.391148,
    "msecs": 483.0,
    "relativeCreated": 1063.0173683166504,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='id': ['customer_id': 0.10 -> 0.99 (+0.89), 'address_id': 0.11 -> 0.16 (+0.05), 'first_name': -0.00 -> -0.00 (+0.00), 'activebool': -0.00 -> 0.09 (+0.09), 'email': 0.12 -> 0.12 (+0.00), 'store_id': 0.14 -> 0.36 (+0.23), 'active': -0.01 -> 0.04 (+0.05), 'last_name': -0.01 -> -0.01 (+0.00), 'create_date': -0.01 -> 0.07 (+0.08), 'last_update': -0.01 -> 0.16 (+0.17)]"
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml.verbose",
    "msg": "Compute match scores for value='last_name'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.39122,
    "msecs": 483.0,
    "relativeCreated": 1063.0886554718018,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='last_name'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Compute match scores for value='name'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.391536,
    "msecs": 484.0,
    "relativeCreated": 1063.405990600586,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='name'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function force_lower_case() in context='category':\n    ('last_name', ['id', 'name']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.0, 0.166].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.391643,
    "msecs": 484.0,
    "relativeCreated": 1063.5080337524414,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function force_lower_case() in context='category':\n    ('last_name', ['id', 'name']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.0, 0.166]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function force_lower_case() in context='customer':\n    ('name', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.0, -0.001, 0.141, -0.003, 0.121, -0.005, 0.077, 0.16, 0.054, 0.053].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.391736,
    "msecs": 484.0,
    "relativeCreated": 1063.6041164398193,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function force_lower_case() in context='customer':\n    ('name', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.0, -0.001, 0.141, -0.003, 0.121, -0.005, 0.077, 0.16, 0.054, 0.053]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='last_name': ['id': 0.00 -> 0.00 (+0.00), 'name': 0.17 -> 0.17 (+0.00)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.391798,
    "msecs": 484.0,
    "relativeCreated": 1063.6663436889648,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='last_name': ['id': 0.00 -> 0.00 (+0.00), 'name': 0.17 -> 0.17 (+0.00)]"
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='customer':\n    ('name', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('first_name', *).\n    Positional penalty=0.005. Scores before penalty: [0.0, -0.001, 0.998, -0.003, 0.029, -0.005, 0.027, 0.382, 0.142, 0.091].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.3919,
    "msecs": 484.0,
    "relativeCreated": 1063.7693405151367,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='customer':\n    ('name', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('first_name', *).\n    Positional penalty=0.005. Scores before penalty: [0.0, -0.001, 0.998, -0.003, 0.029, -0.005, 0.027, 0.382, 0.142, 0.091]."
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml.verbose",
    "msg": "Computed 3x2 match scores in 1ms:\ncandidates   id      name\nvalues                   \nlast_name   0.0  0.165667\nid          inf      -inf\nname       -inf       inf",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 263,
    "funcName": "compute_scores",
    "created": 1557606600.392707,
    "msecs": 485.0,
    "relativeCreated": 1064.572811126709,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Computed 3x2 match scores in 1ms:\ncandidates   id      name\nvalues                   \nlast_name   0.0  0.165667\nid          inf      -inf\nname       -inf       inf"
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='customer':\n    ('name', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('customer_name', *).\n    Positional penalty=0.010. Scores before penalty: [0.0, -0.001, 0.123, -0.003, 0.018, -0.005, 0.015, 0.104, 0.083, 0.052].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.392792,
    "msecs": 485.0,
    "relativeCreated": 1064.6624565124512,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='customer':\n    ('name', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('customer_name', *).\n    Positional penalty=0.010. Scores before penalty: [0.0, -0.001, 0.123, -0.003, 0.018, -0.005, 0.015, 0.104, 0.083, 0.052]."
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml.verbose",
    "msg": "Accepted: 'id' -> 'id'; score=inf (short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.393757,
    "msecs": 486.0,
    "relativeCreated": 1065.622329711914,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'id' -> 'id'; score=inf (short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='customer':\n    ('name', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('customer', *).\n    Positional penalty=0.015. Scores before penalty: [0.0, -0.001, -0.002, -0.003, -0.004, -0.005, -0.006, -0.007, -0.008, -0.009].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.393874,
    "msecs": 486.0,
    "relativeCreated": 1065.7401084899902,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='customer':\n    ('name', ['customer_id', 'address_id', 'first_name', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update']) -> ('customer', *).\n    Positional penalty=0.015. Scores before penalty: [0.0, -0.001, -0.002, -0.003, -0.004, -0.005, -0.006, -0.007, -0.008, -0.009]."
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml.verbose",
    "msg": "This match supersedes 1 other matches:\n    'id' -> 'name'; score=-inf (superseded by short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.393952,
    "msecs": 486.0,
    "relativeCreated": 1065.8156871795654,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 1 other matches:\n    'id' -> 'name'; score=-inf (superseded by short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='name': ['customer_id': 0.00 -> 0.00 (+0.00), 'address_id': -0.00 -> -0.00 (+0.00), 'first_name': 0.14 -> 0.99 (+0.85), 'activebool': -0.00 -> -0.00 (+0.00), 'email': 0.12 -> 0.12 (+0.00), 'store_id': -0.01 -> -0.01 (+0.00), 'active': 0.08 -> 0.08 (+0.00), 'last_name': 0.16 -> 0.38 (+0.22), 'create_date': 0.05 -> 0.14 (+0.08), 'last_update': 0.05 -> 0.09 (+0.03)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.394012,
    "msecs": 486.0,
    "relativeCreated": 1065.8814907073975,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='name': ['customer_id': 0.00 -> 0.00 (+0.00), 'address_id': -0.00 -> -0.00 (+0.00), 'first_name': 0.14 -> 0.99 (+0.85), 'activebool': -0.00 -> -0.00 (+0.00), 'email': 0.12 -> 0.12 (+0.00), 'store_id': -0.01 -> -0.01 (+0.00), 'active': 0.08 -> 0.08 (+0.00), 'last_name': 0.16 -> 0.38 (+0.22), 'create_date': 0.05 -> 0.14 (+0.08), 'last_update': 0.05 -> 0.09 (+0.03)]"
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml.verbose",
    "msg": "Accepted: 'name' -> 'name'; score=inf (short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.394065,
    "msecs": 486.0,
    "relativeCreated": 1065.934181213379,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'name' -> 'name'; score=inf (short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Computed 3x10 match scores in 6ms:\ncandidates  customer_id  first_name  address_id  activebool  email  store_id    active  last_name  create_date  last_update\nvalues                                                                                                                     \nlast_name          -inf        -inf        -inf        -inf   -inf      -inf      -inf        inf         -inf         -inf\nid                 0.99      -0.002    0.160667       0.087  0.121     0.365  0.044556  -0.007000     0.072909     0.162818\nname               0.00       0.993   -0.001000      -0.003  0.121    -0.005  0.077333   0.376889     0.137000     0.086000",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 263,
    "funcName": "compute_scores",
    "created": 1557606600.395702,
    "msecs": 488.0,
    "relativeCreated": 1067.5666332244873,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Computed 3x10 match scores in 6ms:\ncandidates  customer_id  first_name  address_id  activebool  email  store_id    active  last_name  create_date  last_update\nvalues                                                                                                                     \nlast_name          -inf        -inf        -inf        -inf   -inf      -inf      -inf        inf         -inf         -inf\nid                 0.99      -0.002    0.160667       0.087  0.121     0.365  0.044556  -0.007000     0.072909     0.162818\nname               0.00       0.993   -0.001000      -0.003  0.121    -0.005  0.077333   0.376889     0.137000     0.086000"
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml.verbose",
    "msg": "This match supersedes 1 other matches:\n    'name' -> 'id'; score=-inf (superseded by short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.395776,
    "msecs": 488.0,
    "relativeCreated": 1067.641258239746,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 1 other matches:\n    'name' -> 'id'; score=-inf (superseded by short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Accepted: 'last_name' -> 'last_name'; score=inf (short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.396626,
    "msecs": 489.0,
    "relativeCreated": 1068.4919357299805,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'last_name' -> 'last_name'; score=inf (short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml.verbose",
    "msg": "Could not map value='last_name':\n    'last_name' -> 'name'; score=0.166 < 0.9 (below threshold).\n    'last_name' -> 'id'; score=0.000 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 127,
    "funcName": "to_directional_mapping",
    "created": 1557606600.39686,
    "msecs": 489.0,
    "relativeCreated": 1068.709373474121,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Could not map value='last_name':\n    'last_name' -> 'name'; score=0.166 < 0.9 (below threshold).\n    'last_name' -> 'id'; score=0.000 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "This match supersedes 9 other matches:\n    'last_name' -> 'customer_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'first_name'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'address_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'activebool'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'email'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'store_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'active'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'create_date'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'last_update'; score=-inf (superseded by short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.396937,
    "msecs": 489.0,
    "relativeCreated": 1068.8011646270752,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 9 other matches:\n    'last_name' -> 'customer_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'first_name'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'address_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'activebool'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'email'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'store_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'active'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'create_date'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'last_update'; score=-inf (superseded by short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml.verbose",
    "msg": "Could not map {'last_name'} in context='category' to any of candidates={'id', 'name'}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 188,
    "funcName": "_report_unmapped",
    "created": 1557606600.397312,
    "msecs": 489.0,
    "relativeCreated": 1069.1773891448975,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Could not map {'last_name'} in context='category' to any of candidates={'id', 'name'}."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Accepted: 'name' -> 'first_name'; score=0.993 >= 0.9.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.397409,
    "msecs": 489.0,
    "relativeCreated": 1069.2527294158936,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'name' -> 'first_name'; score=0.993 >= 0.9."
  },
  {
    "name": "id_translation.mapping.placeholders.translation-toml.verbose",
    "msg": "Mapping with cardinality='ManyToOne' completed for ['last_name', 'id', 'name']x{'id', 'name'} in 7ms. Matches:\n    'last_name' -> <no matches>\n    'id' -> ('id',)\n    'name' -> ('name',)\nMatched 2/3 values with 2 different candidates.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 167,
    "funcName": "apply",
    "created": 1557606600.39748,
    "msecs": 489.0,
    "relativeCreated": 1069.3490505218506,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Mapping with cardinality='ManyToOne' completed for ['last_name', 'id', 'name']x{'id', 'name'} in 7ms. Matches:\n    'last_name' -> <no matches>\n    'id' -> ('id',)\n    'name' -> ('name',)\nMatched 2/3 values with 2 different candidates."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "This match supersedes 9 other matches:\n    'name' -> 'last_name'; score=0.377 < 0.9 (below threshold).\n    'name' -> 'create_date'; score=0.137 < 0.9 (below threshold).\n    'name' -> 'email'; score=0.121 < 0.9 (below threshold).\n    'name' -> 'last_update'; score=0.086 < 0.9 (below threshold).\n    'name' -> 'active'; score=0.077 < 0.9 (below threshold).\n    'name' -> 'customer_id'; score=0.000 < 0.9 (below threshold).\n    'name' -> 'address_id'; score=-0.001 < 0.9 (below threshold).\n    'name' -> 'activebool'; score=-0.003 < 0.9 (below threshold).\n    'name' -> 'store_id'; score=-0.005 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.39756,
    "msecs": 490.0,
    "relativeCreated": 1069.4246292114258,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 9 other matches:\n    'name' -> 'last_name'; score=0.377 < 0.9 (below threshold).\n    'name' -> 'create_date'; score=0.137 < 0.9 (below threshold).\n    'name' -> 'email'; score=0.121 < 0.9 (below threshold).\n    'name' -> 'last_update'; score=0.086 < 0.9 (below threshold).\n    'name' -> 'active'; score=0.077 < 0.9 (below threshold).\n    'name' -> 'customer_id'; score=0.000 < 0.9 (below threshold).\n    'name' -> 'address_id'; score=-0.001 < 0.9 (below threshold).\n    'name' -> 'activebool'; score=-0.003 < 0.9 (below threshold).\n    'name' -> 'store_id'; score=-0.005 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.fetching.translation-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'id', 'name'} for source='category': {'id': ('id',), 'name': ('name',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.397658,
    "msecs": 490.0,
    "relativeCreated": 1069.5228576660156,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "MEMORYFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "MEMORYFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.006925532999957795,
    "mapping": {
      "id": [
        "id"
      ],
      "name": [
        "name"
      ]
    },
    "context": "category",
    "config_file": "translation.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'id', 'name'} for source='category': {'id': ('id',), 'name': ('name',)}."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Accepted: 'id' -> 'customer_id'; score=0.990 >= 0.9.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.397722,
    "msecs": 490.0,
    "relativeCreated": 1069.5891380310059,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'id' -> 'customer_id'; score=0.990 >= 0.9."
  },
  {
    "name": "id_translation.fetching.translation-toml",
    "msg": "Begin fetching placeholders=('last_name', 'id', 'name') from source='category' for 7 IDs.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 477,
    "funcName": "_call_user_impl",
    "created": 1557606600.397798,
    "msecs": 490.0,
    "relativeCreated": 1069.6640014648438,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "event_key": "MEMORYFETCHER.FETCH_TRANSLATIONS",
    "event_stage": "ENTER",
    "event_title": "MEMORYFETCHER.FETCH_TRANSLATIONS.ENTER",
    "source": "category",
    "placeholders": [
      "last_name",
      "id",
      "name"
    ],
    "required_placeholders": [
      "id",
      "name"
    ],
    "num_ids": 7,
    "fetch_all": false,
    "task_id": 8362323,
    "config_file": "translation.toml",
    "message": "Begin fetching placeholders=('last_name', 'id', 'name') from source='category' for 7 IDs."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "This match supersedes 9 other matches:\n    'id' -> 'store_id'; score=0.365 < 0.9 (below threshold).\n    'id' -> 'last_update'; score=0.163 < 0.9 (below threshold).\n    'id' -> 'address_id'; score=0.161 < 0.9 (below threshold).\n    'id' -> 'email'; score=0.121 < 0.9 (below threshold).\n    'id' -> 'activebool'; score=0.087 < 0.9 (below threshold).\n    'id' -> 'create_date'; score=0.073 < 0.9 (below threshold).\n    'id' -> 'active'; score=0.045 < 0.9 (below threshold).\n    'id' -> 'first_name'; score=-0.002 < 0.9 (below threshold).\n    'id' -> 'last_name'; score=-0.007 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.397889,
    "msecs": 490.0,
    "relativeCreated": 1069.7555541992188,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 9 other matches:\n    'id' -> 'store_id'; score=0.365 < 0.9 (below threshold).\n    'id' -> 'last_update'; score=0.163 < 0.9 (below threshold).\n    'id' -> 'address_id'; score=0.161 < 0.9 (below threshold).\n    'id' -> 'email'; score=0.121 < 0.9 (below threshold).\n    'id' -> 'activebool'; score=0.087 < 0.9 (below threshold).\n    'id' -> 'create_date'; score=0.073 < 0.9 (below threshold).\n    'id' -> 'active'; score=0.045 < 0.9 (below threshold).\n    'id' -> 'first_name'; score=-0.002 < 0.9 (below threshold).\n    'id' -> 'last_name'; score=-0.007 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.fetching.translation-toml",
    "msg": "Finished fetching placeholders=('id', 'name') for 16 IDs from source 'category' in 157\u03bcs, using MemoryFetcher(sources=['category']).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 497,
    "funcName": "_call_user_impl",
    "created": 1557606600.397982,
    "msecs": 490.0,
    "relativeCreated": 1069.8447227478027,
    "thread": 123867777459904,
    "threadName": "MultiFetcher_1",
    "processName": "MainProcess",
    "process": 34525,
    "event_key": "MEMORYFETCHER.FETCH_TRANSLATIONS",
    "event_stage": "EXIT",
    "event_title": "MEMORYFETCHER.FETCH_TRANSLATIONS.EXIT",
    "execution_time": 0.00015686400001868606,
    "source": "category",
    "placeholders": [
      "id",
      "name"
    ],
    "num_ids": 16,
    "fetch_all": false,
    "task_id": 8362323,
    "config_file": "translation.toml",
    "message": "Finished fetching placeholders=('id', 'name') for 16 IDs from source 'category' in 157\u03bcs, using MemoryFetcher(sources=['category'])."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Mapping with cardinality='ManyToOne' completed for ['last_name', 'id', 'name']x['customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'] in 10ms. Matches:\n    'last_name' -> ('last_name',)\n    'id' -> ('customer_id',)\n    'name' -> ('first_name',)\nMatched 3/3 values with 3 different candidates.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 167,
    "funcName": "apply",
    "created": 1557606600.39855,
    "msecs": 491.0,
    "relativeCreated": 1070.4164505004883,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Mapping with cardinality='ManyToOne' completed for ['last_name', 'id', 'name']x['customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'] in 10ms. Matches:\n    'last_name' -> ('last_name',)\n    'id' -> ('customer_id',)\n    'name' -> ('first_name',)\nMatched 3/3 values with 3 different candidates."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'} for source='customer': {'last_name': ('last_name',), 'id': ('customer_id',), 'name': ('first_name',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.398706,
    "msecs": 491.0,
    "relativeCreated": 1070.5692768096924,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.010610650999296922,
    "mapping": {
      "last_name": [
        "last_name"
      ],
      "id": [
        "customer_id"
      ],
      "name": [
        "first_name"
      ]
    },
    "context": "customer",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'customer_id', 'first_name', 'address_id', 'activebool', 'email', 'store_id', 'active', 'last_name', 'create_date', 'last_update'} for source='customer': {'last_name': ('last_name',), 'id': ('customer_id',), 'name': ('first_name',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin fetching placeholders=('last_name', 'customer_id', 'first_name') from source='customer' for 10 IDs.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 477,
    "funcName": "_call_user_impl",
    "created": 1557606600.398763,
    "msecs": 491.0,
    "relativeCreated": 1070.629596710205,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "event_key": "SQLFETCHER.FETCH_TRANSLATIONS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.FETCH_TRANSLATIONS.ENTER",
    "source": "customer",
    "placeholders": [
      "last_name",
      "customer_id",
      "first_name"
    ],
    "required_placeholders": [
      "customer_id",
      "first_name"
    ],
    "num_ids": 10,
    "fetch_all": false,
    "task_id": 8362323,
    "config_file": "sql-fetcher.toml",
    "message": "Begin fetching placeholders=('last_name', 'customer_id', 'first_name') from source='customer' for 10 IDs."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Full SELECT-query using Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila):\nSELECT customer.last_name, customer.customer_id, customer.first_name \nFROM customer \nWHERE customer.customer_id IN (419, 261, 107, 493, 20, 565, 54, 313, 26, 381)",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 230,
    "funcName": "_log_query",
    "created": 1557606600.39926,
    "msecs": 491.0,
    "relativeCreated": 1071.1243152618408,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "table": "customer",
    "config_file": "sql-fetcher.toml",
    "message": "Full SELECT-query using Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila):\nSELECT customer.last_name, customer.customer_id, customer.first_name \nFROM customer \nWHERE customer.customer_id IN (419, 261, 107, 493, 20, 565, 54, 313, 26, 381)"
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished fetching placeholders=('last_name', 'customer_id', 'first_name') for 10 IDs from source 'customer' in 3ms, using SqlFetcher(Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila), blacklist={'store', 'category', 'inventory', 'rental', 'payment'}).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 497,
    "funcName": "_call_user_impl",
    "created": 1557606600.401711,
    "msecs": 494.0,
    "relativeCreated": 1073.570966720581,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "event_key": "SQLFETCHER.FETCH_TRANSLATIONS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.FETCH_TRANSLATIONS.EXIT",
    "execution_time": 0.002905740000642254,
    "source": "customer",
    "placeholders": [
      "last_name",
      "customer_id",
      "first_name"
    ],
    "num_ids": 10,
    "fetch_all": false,
    "task_id": 8362323,
    "config_file": "sql-fetcher.toml",
    "message": "Finished fetching placeholders=('last_name', 'customer_id', 'first_name') for 10 IDs from source 'customer' in 3ms, using SqlFetcher(Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila), blacklist={'store', 'category', 'inventory', 'rental', 'payment'})."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'} for source='film'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.401763,
    "msecs": 494.0,
    "relativeCreated": 1073.62699508667,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "last_name",
      "id",
      "name"
    ],
    "candidates": [
      "title",
      "special_features",
      "description",
      "language_id",
      "rating",
      "replacement_cost",
      "original_language_id",
      "rental_rate",
      "release_year",
      "rental_duration",
      "fulltext",
      "film_id",
      "length",
      "last_update"
    ],
    "context": "film",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'} for source='film'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='film' for ['last_name', 'id', 'name']x['title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.40198,
    "msecs": 494.0,
    "relativeCreated": 1073.8470554351807,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='film' for ['last_name', 'id', 'name']x['title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, and found 1 matches={'name': 'title'} in the given values=['last_name', 'id', 'name'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.402138,
    "msecs": 494.0,
    "relativeCreated": 1074.0067958831787,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, and found 1 matches={'name': 'title'} in the given values=['last_name', 'id', 'name']."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Compute match scores for value='last_name'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.402166,
    "msecs": 494.0,
    "relativeCreated": 1074.0375518798828,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='last_name'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function force_lower_case() in context='film':\n    ('last_name', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.074, 0.039, -0.002, -0.003, -0.004, -0.005, 0.022, -0.007, 0.103, 0.074, -0.01, -0.011, 0.03, -0.013].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.402237,
    "msecs": 494.0,
    "relativeCreated": 1074.108362197876,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function force_lower_case() in context='film':\n    ('last_name', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.074, 0.039, -0.002, -0.003, -0.004, -0.005, 0.022, -0.007, 0.103, 0.074, -0.01, -0.011, 0.03, -0.013]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='film':\n    ('last_name', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> ('first_last_name', *).\n    Positional penalty=0.005. Scores before penalty: [0.036, 0.017, -0.002, -0.003, -0.004, -0.005, 0.061, -0.007, 0.047, 0.053, -0.01, -0.011, 0.005, -0.013].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.402288,
    "msecs": 494.0,
    "relativeCreated": 1074.159860610962,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='film':\n    ('last_name', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> ('first_last_name', *).\n    Positional penalty=0.005. Scores before penalty: [0.036, 0.017, -0.002, -0.003, -0.004, -0.005, 0.061, -0.007, 0.047, 0.053, -0.01, -0.011, 0.005, -0.013]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='film':\n    ('last_name', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> ('film_last_name', *).\n    Positional penalty=0.010. Scores before penalty: [0.045, 0.019, -0.002, -0.003, -0.004, -0.005, 0.042, -0.007, 0.06, 0.074, -0.01, -0.011, 0.007, -0.013].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.402334,
    "msecs": 494.0,
    "relativeCreated": 1074.2056369781494,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='film':\n    ('last_name', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> ('film_last_name', *).\n    Positional penalty=0.010. Scores before penalty: [0.045, 0.019, -0.002, -0.003, -0.004, -0.005, 0.042, -0.007, 0.06, 0.074, -0.01, -0.011, 0.007, -0.013]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='film':\n    ('last_name', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> (*, *).\n    Positional penalty=0.015. Scores before penalty: [0.074, 0.039, -0.002, -0.003, -0.004, -0.005, 0.022, -0.007, 0.103, 0.074, -0.01, -0.011, 0.03, -0.013].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.402377,
    "msecs": 494.0,
    "relativeCreated": 1074.2485523223877,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='film':\n    ('last_name', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> (*, *).\n    Positional penalty=0.015. Scores before penalty: [0.074, 0.039, -0.002, -0.003, -0.004, -0.005, 0.022, -0.007, 0.103, 0.074, -0.01, -0.011, 0.03, -0.013]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='last_name': ['last_update': 0.07 -> 0.07 (+0.00), 'title': 0.04 -> 0.04 (+0.00), 'special_features': -0.00 -> -0.00 (+0.00), 'description': -0.00 -> -0.00 (+0.00), 'language_id': -0.00 -> -0.00 (+0.00), 'rating': -0.01 -> -0.01 (+0.00), 'replacement_cost': 0.02 -> 0.06 (+0.03), 'original_language_id': -0.01 -> -0.01 (+0.00), 'rental_rate': 0.10 -> 0.10 (+0.00), 'release_year': 0.07 -> 0.07 (+0.00), 'rental_duration': -0.01 -> -0.01 (+0.00), 'film_id': -0.01 -> -0.01 (+0.00), 'length': 0.03 -> 0.03 (+0.00), 'fulltext': -0.01 -> -0.01 (+0.00)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.402407,
    "msecs": 494.0,
    "relativeCreated": 1074.2788314819336,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='last_name': ['last_update': 0.07 -> 0.07 (+0.00), 'title': 0.04 -> 0.04 (+0.00), 'special_features': -0.00 -> -0.00 (+0.00), 'description': -0.00 -> -0.00 (+0.00), 'language_id': -0.00 -> -0.00 (+0.00), 'rating': -0.01 -> -0.01 (+0.00), 'replacement_cost': 0.02 -> 0.06 (+0.03), 'original_language_id': -0.01 -> -0.01 (+0.00), 'rental_rate': 0.10 -> 0.10 (+0.00), 'release_year': 0.07 -> 0.07 (+0.00), 'rental_duration': -0.01 -> -0.01 (+0.00), 'film_id': -0.01 -> -0.01 (+0.00), 'length': 0.03 -> 0.03 (+0.00), 'fulltext': -0.01 -> -0.01 (+0.00)]"
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Compute match scores for value='id'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.402727,
    "msecs": 495.0,
    "relativeCreated": 1074.5980739593506,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='id'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function force_lower_case() in context='film':\n    ('id', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.0, -0.001, -0.002, -0.003, 0.096, -0.005, -0.006, 0.046, -0.008, -0.009, -0.01, 0.156, -0.012, -0.013].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.402781,
    "msecs": 495.0,
    "relativeCreated": 1074.6517181396484,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function force_lower_case() in context='film':\n    ('id', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.0, -0.001, -0.002, -0.003, 0.096, -0.005, -0.006, 0.046, -0.008, -0.009, -0.01, 0.156, -0.012, -0.013]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='film':\n    ('id', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> ('first_id', *).\n    Positional penalty=0.005. Scores before penalty: [0.0, -0.001, 0.012, 0.028, 0.09, 0.106, -0.006, 0.022, -0.008, -0.009, 0.021, 0.203, -0.012, 0.237].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.402827,
    "msecs": 495.0,
    "relativeCreated": 1074.6984481811523,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='film':\n    ('id', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> ('first_id', *).\n    Positional penalty=0.005. Scores before penalty: [0.0, -0.001, 0.012, 0.028, 0.09, 0.106, -0.006, 0.022, -0.008, -0.009, 0.021, 0.203, -0.012, 0.237]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='film':\n    ('id', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> ('film_id', *).\n    Positional penalty=0.010. Scores before penalty: [0.0, -0.001, -0.002, 0.026, 0.082, -0.005, -0.006, 0.024, -0.008, -0.009, -0.01, 0.989, -0.012, 0.058].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.402879,
    "msecs": 495.0,
    "relativeCreated": 1074.7504234313965,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='film':\n    ('id', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> ('film_id', *).\n    Positional penalty=0.010. Scores before penalty: [0.0, -0.001, -0.002, 0.026, 0.082, -0.005, -0.006, 0.024, -0.008, -0.009, -0.01, 0.989, -0.012, 0.058]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='film':\n    ('id', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> (*, *).\n    Positional penalty=0.015. Scores before penalty: [0.0, -0.001, -0.002, -0.003, 0.096, -0.005, -0.006, 0.046, -0.008, -0.009, -0.01, 0.156, -0.012, -0.013].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.40292,
    "msecs": 495.0,
    "relativeCreated": 1074.791669845581,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='film':\n    ('id', ['last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext']) -> (*, *).\n    Positional penalty=0.015. Scores before penalty: [0.0, -0.001, -0.002, -0.003, 0.096, -0.005, -0.006, 0.046, -0.008, -0.009, -0.01, 0.156, -0.012, -0.013]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='id': ['last_update': 0.00 -> 0.00 (+0.00), 'title': -0.00 -> -0.00 (+0.00), 'special_features': -0.00 -> 0.01 (+0.01), 'description': -0.00 -> 0.02 (+0.03), 'language_id': 0.10 -> 0.10 (+0.00), 'rating': -0.01 -> 0.10 (+0.11), 'replacement_cost': -0.01 -> -0.01 (+0.00), 'original_language_id': 0.05 -> 0.05 (+0.00), 'rental_rate': -0.01 -> -0.01 (+0.00), 'release_year': -0.01 -> -0.01 (+0.00), 'rental_duration': -0.01 -> 0.02 (+0.03), 'film_id': 0.16 -> 0.98 (+0.82), 'length': -0.01 -> -0.01 (+0.00), 'fulltext': -0.01 -> 0.23 (+0.24)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.402948,
    "msecs": 495.0,
    "relativeCreated": 1074.8202800750732,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='id': ['last_update': 0.00 -> 0.00 (+0.00), 'title': -0.00 -> -0.00 (+0.00), 'special_features': -0.00 -> 0.01 (+0.01), 'description': -0.00 -> 0.02 (+0.03), 'language_id': 0.10 -> 0.10 (+0.00), 'rating': -0.01 -> 0.10 (+0.11), 'replacement_cost': -0.01 -> -0.01 (+0.00), 'original_language_id': 0.05 -> 0.05 (+0.00), 'rental_rate': -0.01 -> -0.01 (+0.00), 'release_year': -0.01 -> -0.01 (+0.00), 'rental_duration': -0.01 -> 0.02 (+0.03), 'film_id': 0.16 -> 0.98 (+0.82), 'length': -0.01 -> -0.01 (+0.00), 'fulltext': -0.01 -> 0.23 (+0.24)]"
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Computed 3x14 match scores in 1ms:\ncandidates  title  special_features  description  language_id    rating  replacement_cost  original_language_id  rental_rate  release_year  rental_duration  fulltext  film_id    length  last_update\nvalues                                                                                                                                                                                               \nlast_name   0.039         -0.002000     -0.00300       -0.004 -0.005000          0.055667             -0.007000     0.103111      0.074333         -0.01000    -0.013   -0.011  0.029667     0.074074\nid         -0.001          0.006889      0.02325        0.096  0.101111         -0.006000              0.045632    -0.008000     -0.009000          0.01625     0.232    0.979 -0.012000     0.000000\nname          inf              -inf         -inf         -inf      -inf              -inf                  -inf         -inf          -inf             -inf      -inf     -inf      -inf         -inf",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 263,
    "funcName": "compute_scores",
    "created": 1557606600.404889,
    "msecs": 497.0,
    "relativeCreated": 1076.7521858215332,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Computed 3x14 match scores in 1ms:\ncandidates  title  special_features  description  language_id    rating  replacement_cost  original_language_id  rental_rate  release_year  rental_duration  fulltext  film_id    length  last_update\nvalues                                                                                                                                                                                               \nlast_name   0.039         -0.002000     -0.00300       -0.004 -0.005000          0.055667             -0.007000     0.103111      0.074333         -0.01000    -0.013   -0.011  0.029667     0.074074\nid         -0.001          0.006889      0.02325        0.096  0.101111         -0.006000              0.045632    -0.008000     -0.009000          0.01625     0.232    0.979 -0.012000     0.000000\nname          inf              -inf         -inf         -inf      -inf              -inf                  -inf         -inf          -inf             -inf      -inf     -inf      -inf         -inf"
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Accepted: 'name' -> 'title'; score=inf (short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.406507,
    "msecs": 498.0,
    "relativeCreated": 1078.3717632293701,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'name' -> 'title'; score=inf (short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "This match supersedes 13 other matches:\n    'name' -> 'special_features'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'description'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'language_id'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'rating'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'replacement_cost'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'original_language_id'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'rental_rate'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'release_year'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'rental_duration'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'fulltext'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'film_id'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'length'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'last_update'; score=-inf (superseded by short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.406543,
    "msecs": 499.0,
    "relativeCreated": 1078.413486480713,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 13 other matches:\n    'name' -> 'special_features'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'description'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'language_id'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'rating'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'replacement_cost'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'original_language_id'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'rental_rate'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'release_year'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'rental_duration'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'fulltext'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'film_id'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'length'; score=-inf (superseded by short-circuit or override).\n    'name' -> 'last_update'; score=-inf (superseded by short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Accepted: 'id' -> 'film_id'; score=0.979 >= 0.9.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.406571,
    "msecs": 499.0,
    "relativeCreated": 1078.4425735473633,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'id' -> 'film_id'; score=0.979 >= 0.9."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "This match supersedes 13 other matches:\n    'id' -> 'fulltext'; score=0.232 < 0.9 (below threshold).\n    'id' -> 'rating'; score=0.101 < 0.9 (below threshold).\n    'id' -> 'language_id'; score=0.096 < 0.9 (below threshold).\n    'id' -> 'original_language_id'; score=0.046 < 0.9 (below threshold).\n    'id' -> 'description'; score=0.023 < 0.9 (below threshold).\n    'id' -> 'rental_duration'; score=0.016 < 0.9 (below threshold).\n    'id' -> 'special_features'; score=0.007 < 0.9 (below threshold).\n    'id' -> 'last_update'; score=0.000 < 0.9 (below threshold).\n    'id' -> 'title'; score=-0.001 < 0.9 (below threshold).\n    'id' -> 'replacement_cost'; score=-0.006 < 0.9 (below threshold).\n    'id' -> 'rental_rate'; score=-0.008 < 0.9 (below threshold).\n    'id' -> 'release_year'; score=-0.009 < 0.9 (below threshold).\n    'id' -> 'length'; score=-0.012 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.406598,
    "msecs": 499.0,
    "relativeCreated": 1078.470230102539,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 13 other matches:\n    'id' -> 'fulltext'; score=0.232 < 0.9 (below threshold).\n    'id' -> 'rating'; score=0.101 < 0.9 (below threshold).\n    'id' -> 'language_id'; score=0.096 < 0.9 (below threshold).\n    'id' -> 'original_language_id'; score=0.046 < 0.9 (below threshold).\n    'id' -> 'description'; score=0.023 < 0.9 (below threshold).\n    'id' -> 'rental_duration'; score=0.016 < 0.9 (below threshold).\n    'id' -> 'special_features'; score=0.007 < 0.9 (below threshold).\n    'id' -> 'last_update'; score=0.000 < 0.9 (below threshold).\n    'id' -> 'title'; score=-0.001 < 0.9 (below threshold).\n    'id' -> 'replacement_cost'; score=-0.006 < 0.9 (below threshold).\n    'id' -> 'rental_rate'; score=-0.008 < 0.9 (below threshold).\n    'id' -> 'release_year'; score=-0.009 < 0.9 (below threshold).\n    'id' -> 'length'; score=-0.012 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Could not map value='last_name':\n    'last_name' -> 'rental_rate'; score=0.103 < 0.9 (below threshold).\n    'last_name' -> 'release_year'; score=0.074 < 0.9 (below threshold).\n    'last_name' -> 'last_update'; score=0.074 < 0.9 (below threshold).\n    'last_name' -> 'replacement_cost'; score=0.056 < 0.9 (below threshold).\n    'last_name' -> 'title'; score=0.039 < 0.9 (below threshold).\n    'last_name' -> 'length'; score=0.030 < 0.9 (below threshold).\n    'last_name' -> 'special_features'; score=-0.002 < 0.9 (below threshold).\n    'last_name' -> 'description'; score=-0.003 < 0.9 (below threshold).\n    'last_name' -> 'language_id'; score=-0.004 < 0.9 (below threshold).\n    'last_name' -> 'rating'; score=-0.005 < 0.9 (below threshold).\n    'last_name' -> 'original_language_id'; score=-0.007 < 0.9 (below threshold).\n    'last_name' -> 'rental_duration'; score=-0.010 < 0.9 (below threshold).\n    'last_name' -> 'film_id'; score=-0.011 < 0.9 (below threshold).\n    'last_name' -> 'fulltext'; score=-0.013 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 127,
    "funcName": "to_directional_mapping",
    "created": 1557606600.406757,
    "msecs": 499.0,
    "relativeCreated": 1078.6266326904297,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Could not map value='last_name':\n    'last_name' -> 'rental_rate'; score=0.103 < 0.9 (below threshold).\n    'last_name' -> 'release_year'; score=0.074 < 0.9 (below threshold).\n    'last_name' -> 'last_update'; score=0.074 < 0.9 (below threshold).\n    'last_name' -> 'replacement_cost'; score=0.056 < 0.9 (below threshold).\n    'last_name' -> 'title'; score=0.039 < 0.9 (below threshold).\n    'last_name' -> 'length'; score=0.030 < 0.9 (below threshold).\n    'last_name' -> 'special_features'; score=-0.002 < 0.9 (below threshold).\n    'last_name' -> 'description'; score=-0.003 < 0.9 (below threshold).\n    'last_name' -> 'language_id'; score=-0.004 < 0.9 (below threshold).\n    'last_name' -> 'rating'; score=-0.005 < 0.9 (below threshold).\n    'last_name' -> 'original_language_id'; score=-0.007 < 0.9 (below threshold).\n    'last_name' -> 'rental_duration'; score=-0.010 < 0.9 (below threshold).\n    'last_name' -> 'film_id'; score=-0.011 < 0.9 (below threshold).\n    'last_name' -> 'fulltext'; score=-0.013 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Could not map {'last_name'} in context='film' to any of candidates={'last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext'}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 188,
    "funcName": "_report_unmapped",
    "created": 1557606600.407082,
    "msecs": 499.0,
    "relativeCreated": 1078.948974609375,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Could not map {'last_name'} in context='film' to any of candidates={'last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext'}."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Mapping with cardinality='ManyToOne' completed for ['last_name', 'id', 'name']x{'last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext'} in 5ms. Matches:\n    'last_name' -> <no matches>\n    'id' -> ('film_id',)\n    'name' -> ('title',)\nMatched 2/3 values with 2 different candidates.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 167,
    "funcName": "apply",
    "created": 1557606600.407122,
    "msecs": 499.0,
    "relativeCreated": 1078.993320465088,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Mapping with cardinality='ManyToOne' completed for ['last_name', 'id', 'name']x{'last_update', 'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'film_id', 'length', 'fulltext'} in 5ms. Matches:\n    'last_name' -> <no matches>\n    'id' -> ('film_id',)\n    'name' -> ('title',)\nMatched 2/3 values with 2 different candidates."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'} for source='film': {'id': ('film_id',), 'name': ('title',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.407163,
    "msecs": 499.0,
    "relativeCreated": 1079.0290832519531,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.005403339999247692,
    "mapping": {
      "id": [
        "film_id"
      ],
      "name": [
        "title"
      ]
    },
    "context": "film",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'title', 'special_features', 'description', 'language_id', 'rating', 'replacement_cost', 'original_language_id', 'rental_rate', 'release_year', 'rental_duration', 'fulltext', 'film_id', 'length', 'last_update'} for source='film': {'id': ('film_id',), 'name': ('title',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin fetching placeholders=('film_id', 'title') from source='film' for 10 IDs.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 477,
    "funcName": "_call_user_impl",
    "created": 1557606600.407208,
    "msecs": 499.0,
    "relativeCreated": 1079.0760517120361,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "event_key": "SQLFETCHER.FETCH_TRANSLATIONS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.FETCH_TRANSLATIONS.ENTER",
    "source": "film",
    "placeholders": [
      "film_id",
      "title"
    ],
    "required_placeholders": [
      "title",
      "film_id"
    ],
    "num_ids": 10,
    "fetch_all": false,
    "task_id": 8362323,
    "config_file": "sql-fetcher.toml",
    "message": "Begin fetching placeholders=('film_id', 'title') from source='film' for 10 IDs."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Full SELECT-query using Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila):\nSELECT film.film_id, film.title \nFROM film \nWHERE film.film_id IN (994, 773, 454, 487, 7, 489, 134, 479, 797, 767)",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 230,
    "funcName": "_log_query",
    "created": 1557606600.407609,
    "msecs": 500.0,
    "relativeCreated": 1079.4734954833984,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "table": "film",
    "config_file": "sql-fetcher.toml",
    "message": "Full SELECT-query using Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila):\nSELECT film.film_id, film.title \nFROM film \nWHERE film.film_id IN (994, 773, 454, 487, 7, 489, 134, 479, 797, 767)"
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished fetching placeholders=('film_id', 'title') for 10 IDs from source 'film' in 3ms, using SqlFetcher(Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila), blacklist={'store', 'category', 'inventory', 'rental', 'payment'}).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 497,
    "funcName": "_call_user_impl",
    "created": 1557606600.410016,
    "msecs": 502.0,
    "relativeCreated": 1081.864356994629,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "event_key": "SQLFETCHER.FETCH_TRANSLATIONS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.FETCH_TRANSLATIONS.EXIT",
    "execution_time": 0.0027339550015312852,
    "source": "film",
    "placeholders": [
      "film_id",
      "title"
    ],
    "num_ids": 10,
    "fetch_all": false,
    "task_id": 8362323,
    "config_file": "sql-fetcher.toml",
    "message": "Finished fetching placeholders=('film_id', 'title') for 10 IDs from source 'film' in 3ms, using SqlFetcher(Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila), blacklist={'store', 'category', 'inventory', 'rental', 'payment'})."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'} for source='staff'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 175,
    "funcName": "map_placeholders",
    "created": 1557606600.410075,
    "msecs": 502.0,
    "relativeCreated": 1081.9430351257324,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.ENTER",
    "values": [
      "last_name",
      "id",
      "name"
    ],
    "candidates": [
      "staff_id",
      "first_name",
      "address_id",
      "username",
      "picture",
      "email",
      "password",
      "store_id",
      "active",
      "last_name",
      "last_update"
    ],
    "context": "staff",
    "config_file": "sql-fetcher.toml",
    "message": "Begin wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'} for source='staff'."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Begin computing match scores in context='staff' for ['last_name', 'id', 'name']x['staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 241,
    "funcName": "compute_scores",
    "created": 1557606600.410305,
    "msecs": 502.0,
    "relativeCreated": 1082.1704864501953,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Begin computing match scores in context='staff' for ['last_name', 'id', 'name']x['staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'] using HeuristicScore([force_lower_case() | value_fstring_alias(fstring='first_{value}') | value_fstring_alias(fstring='{context}_{value}') | value_fstring_alias(fstring='{context}', for_value='name')] -> AbstractFetcher.default_score_function)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml",
    "msg": "Applied 2 overrides, but none were a match for the given values=['last_name', 'id', 'name'].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 358,
    "funcName": "_handle_overrides",
    "created": 1557606600.410348,
    "msecs": 502.0,
    "relativeCreated": 1082.209587097168,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "config_file": "sql-fetcher.toml",
    "message": "Applied 2 overrides, but none were a match for the given values=['last_name', 'id', 'name']."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Compute match scores for value='id'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.410673,
    "msecs": 503.0,
    "relativeCreated": 1082.5421810150146,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='id'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function force_lower_case() in context='staff':\n    ('id', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.143, -0.001, 0.109, -0.003, -0.004, 0.12, 0.065, 0.136, -0.008, -0.009, -0.01].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.410739,
    "msecs": 503.0,
    "relativeCreated": 1082.608699798584,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function force_lower_case() in context='staff':\n    ('id', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.143, -0.001, 0.109, -0.003, -0.004, 0.12, 0.065, 0.136, -0.008, -0.009, -0.01]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='staff':\n    ('id', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('first_id', *).\n    Positional penalty=0.005. Scores before penalty: [0.375, -0.001, 0.165, 0.068, -0.004, 0.045, 0.244, 0.368, 0.048, -0.009, -0.01].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.410788,
    "msecs": 503.0,
    "relativeCreated": 1082.6599597930908,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='staff':\n    ('id', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('first_id', *).\n    Positional penalty=0.005. Scores before penalty: [0.375, -0.001, 0.165, 0.068, -0.004, 0.045, 0.244, 0.368, 0.048, -0.009, -0.01]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='staff':\n    ('id', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('staff_id', *).\n    Positional penalty=0.010. Scores before penalty: [1.0, -0.001, 0.123, -0.003, -0.004, 0.045, 0.119, 0.618, 0.048, -0.009, -0.01].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.410831,
    "msecs": 503.0,
    "relativeCreated": 1082.7033519744873,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='staff':\n    ('id', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('staff_id', *).\n    Positional penalty=0.010. Scores before penalty: [1.0, -0.001, 0.123, -0.003, -0.004, 0.045, 0.119, 0.618, 0.048, -0.009, -0.01]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='staff':\n    ('id', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> (*, *).\n    Positional penalty=0.015. Scores before penalty: [0.143, -0.001, 0.109, -0.003, -0.004, 0.12, 0.065, 0.136, -0.008, -0.009, -0.01].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.410878,
    "msecs": 503.0,
    "relativeCreated": 1082.7500820159912,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='staff':\n    ('id', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> (*, *).\n    Positional penalty=0.015. Scores before penalty: [0.143, -0.001, 0.109, -0.003, -0.004, 0.12, 0.065, 0.136, -0.008, -0.009, -0.01]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='id': ['staff_id': 0.14 -> 0.99 (+0.85), 'first_name': -0.00 -> -0.00 (+0.00), 'address_id': 0.11 -> 0.16 (+0.05), 'picture': -0.00 -> 0.06 (+0.07), 'username': -0.00 -> -0.00 (+0.00), 'email': 0.12 -> 0.12 (+0.00), 'password': 0.07 -> 0.24 (+0.17), 'store_id': 0.14 -> 0.61 (+0.47), 'active': -0.01 -> 0.04 (+0.05), 'last_name': -0.01 -> -0.01 (+0.00), 'last_update': -0.01 -> -0.01 (+0.00)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.410906,
    "msecs": 503.0,
    "relativeCreated": 1082.7784538269043,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='id': ['staff_id': 0.14 -> 0.99 (+0.85), 'first_name': -0.00 -> -0.00 (+0.00), 'address_id': 0.11 -> 0.16 (+0.05), 'picture': -0.00 -> 0.06 (+0.07), 'username': -0.00 -> -0.00 (+0.00), 'email': 0.12 -> 0.12 (+0.00), 'password': 0.07 -> 0.24 (+0.17), 'store_id': 0.14 -> 0.61 (+0.47), 'active': -0.01 -> 0.04 (+0.05), 'last_name': -0.01 -> -0.01 (+0.00), 'last_update': -0.01 -> -0.01 (+0.00)]"
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Compute match scores for value='name'.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 256,
    "funcName": "compute_scores",
    "created": 1557606600.411164,
    "msecs": 503.0,
    "relativeCreated": 1083.0342769622803,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Compute match scores for value='name'."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function force_lower_case() in context='staff':\n    ('name', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.0, 0.142, -0.002, 0.059, 0.196, 0.12, -0.006, -0.007, 0.075, 0.158, 0.052].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.411215,
    "msecs": 503.0,
    "relativeCreated": 1083.0872058868408,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function force_lower_case() in context='staff':\n    ('name', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> (*, *).\n    Positional penalty=0.000. Scores before penalty: [0.0, 0.142, -0.002, 0.059, 0.196, 0.12, -0.006, -0.007, 0.075, 0.158, 0.052]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='staff':\n    ('name', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('first_name', *).\n    Positional penalty=0.005. Scores before penalty: [0.0, 0.999, -0.002, 0.033, 0.204, 0.028, -0.006, -0.007, 0.025, 0.38, 0.09].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.41126,
    "msecs": 503.0,
    "relativeCreated": 1083.132028579712,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='first_{value}') in context='staff':\n    ('name', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('first_name', *).\n    Positional penalty=0.005. Scores before penalty: [0.0, 0.999, -0.002, 0.033, 0.204, 0.028, -0.006, -0.007, 0.025, 0.38, 0.09]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='staff':\n    ('name', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('staff_name', *).\n    Positional penalty=0.010. Scores before penalty: [0.0, 0.499, -0.002, 0.033, 0.163, 0.028, -0.006, -0.007, 0.025, 0.324, 0.09].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.41148,
    "msecs": 503.0,
    "relativeCreated": 1083.3470821380615,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}_{value}') in context='staff':\n    ('name', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('staff_name', *).\n    Positional penalty=0.010. Scores before penalty: [0.0, 0.499, -0.002, 0.033, 0.163, 0.028, -0.006, -0.007, 0.025, 0.324, 0.09]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='staff':\n    ('name', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('staff', *).\n    Positional penalty=0.015. Scores before penalty: [0.0, 0.032, 0.031, 0.064, 0.046, 0.195, 0.044, -0.007, 0.092, 0.031, 0.019].",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 115,
    "funcName": "__call__",
    "created": 1557606600.411528,
    "msecs": 503.0,
    "relativeCreated": 1083.3995342254639,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Called non-mutating alias function value_fstring_alias(fstring='{context}', for_value='name') in context='staff':\n    ('name', ['staff_id', 'first_name', 'address_id', 'picture', 'username', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update']) -> ('staff', *).\n    Positional penalty=0.015. Scores before penalty: [0.0, 0.032, 0.031, 0.064, 0.046, 0.195, 0.044, -0.007, 0.092, 0.031, 0.019]."
  },
  {
    "name": "id_translation.mapping.verbose.HeuristicScore",
    "msg": "Heuristics scores for value='name': ['staff_id': 0.00 -> 0.00 (+0.00), 'first_name': 0.14 -> 0.99 (+0.85), 'address_id': -0.00 -> 0.02 (+0.02), 'picture': 0.06 -> 0.06 (+0.00), 'username': 0.20 -> 0.20 (+0.00), 'email': 0.12 -> 0.18 (+0.06), 'password': -0.01 -> 0.03 (+0.04), 'store_id': -0.01 -> -0.01 (+0.00), 'active': 0.08 -> 0.08 (+0.00), 'last_name': 0.16 -> 0.37 (+0.22), 'last_update': 0.05 -> 0.09 (+0.03)]",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_heuristic_score.py",
    "filename": "_heuristic_score.py",
    "module": "_heuristic_score",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 144,
    "funcName": "__call__",
    "created": 1557606600.41157,
    "msecs": 504.0,
    "relativeCreated": 1083.4407806396484,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Heuristics scores for value='name': ['staff_id': 0.00 -> 0.00 (+0.00), 'first_name': 0.14 -> 0.99 (+0.85), 'address_id': -0.00 -> 0.02 (+0.02), 'picture': 0.06 -> 0.06 (+0.00), 'username': 0.20 -> 0.20 (+0.00), 'email': 0.12 -> 0.18 (+0.06), 'password': -0.01 -> 0.03 (+0.04), 'store_id': -0.01 -> -0.01 (+0.00), 'active': 0.08 -> 0.08 (+0.00), 'last_name': 0.16 -> 0.37 (+0.22), 'last_update': 0.05 -> 0.09 (+0.03)]"
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Computed 3x11 match scores in 2ms:\ncandidates  staff_id  first_name  address_id  username   picture  email  password  store_id    active  last_name  last_update\nvalues                                                                                                                       \nlast_name       -inf        -inf        -inf      -inf      -inf   -inf      -inf      -inf      -inf        inf         -inf\nid              0.99      -0.001    0.159667 -0.004000  0.063429   0.12     0.239     0.608  0.042556  -0.009000       -0.010\nname            0.00       0.994    0.016333  0.199333  0.059500   0.18     0.029    -0.007  0.077000   0.374889        0.085",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 263,
    "funcName": "compute_scores",
    "created": 1557606600.4132,
    "msecs": 505.0,
    "relativeCreated": 1085.06178855896,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Computed 3x11 match scores in 2ms:\ncandidates  staff_id  first_name  address_id  username   picture  email  password  store_id    active  last_name  last_update\nvalues                                                                                                                       \nlast_name       -inf        -inf        -inf      -inf      -inf   -inf      -inf      -inf      -inf        inf         -inf\nid              0.99      -0.001    0.159667 -0.004000  0.063429   0.12     0.239     0.608  0.042556  -0.009000       -0.010\nname            0.00       0.994    0.016333  0.199333  0.059500   0.18     0.029    -0.007  0.077000   0.374889        0.085"
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Accepted: 'last_name' -> 'last_name'; score=inf (short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.413955,
    "msecs": 506.0,
    "relativeCreated": 1085.8190059661865,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'last_name' -> 'last_name'; score=inf (short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "This match supersedes 10 other matches:\n    'last_name' -> 'staff_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'first_name'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'address_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'username'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'picture'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'email'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'password'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'store_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'active'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'last_update'; score=-inf (superseded by short-circuit or override).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.413989,
    "msecs": 506.0,
    "relativeCreated": 1085.859775543213,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 10 other matches:\n    'last_name' -> 'staff_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'first_name'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'address_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'username'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'picture'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'email'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'password'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'store_id'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'active'; score=-inf (superseded by short-circuit or override).\n    'last_name' -> 'last_update'; score=-inf (superseded by short-circuit or override)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Accepted: 'name' -> 'first_name'; score=0.994 >= 0.9.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.414182,
    "msecs": 506.0,
    "relativeCreated": 1086.0443115234375,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'name' -> 'first_name'; score=0.994 >= 0.9."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "This match supersedes 10 other matches:\n    'name' -> 'last_name'; score=0.375 < 0.9 (below threshold).\n    'name' -> 'username'; score=0.199 < 0.9 (below threshold).\n    'name' -> 'email'; score=0.180 < 0.9 (below threshold).\n    'name' -> 'last_update'; score=0.085 < 0.9 (below threshold).\n    'name' -> 'active'; score=0.077 < 0.9 (below threshold).\n    'name' -> 'picture'; score=0.059 < 0.9 (below threshold).\n    'name' -> 'password'; score=0.029 < 0.9 (below threshold).\n    'name' -> 'address_id'; score=0.016 < 0.9 (below threshold).\n    'name' -> 'staff_id'; score=0.000 < 0.9 (below threshold).\n    'name' -> 'store_id'; score=-0.007 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.414218,
    "msecs": 506.0,
    "relativeCreated": 1086.0888957977295,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 10 other matches:\n    'name' -> 'last_name'; score=0.375 < 0.9 (below threshold).\n    'name' -> 'username'; score=0.199 < 0.9 (below threshold).\n    'name' -> 'email'; score=0.180 < 0.9 (below threshold).\n    'name' -> 'last_update'; score=0.085 < 0.9 (below threshold).\n    'name' -> 'active'; score=0.077 < 0.9 (below threshold).\n    'name' -> 'picture'; score=0.059 < 0.9 (below threshold).\n    'name' -> 'password'; score=0.029 < 0.9 (below threshold).\n    'name' -> 'address_id'; score=0.016 < 0.9 (below threshold).\n    'name' -> 'staff_id'; score=0.000 < 0.9 (below threshold).\n    'name' -> 'store_id'; score=-0.007 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Accepted: 'id' -> 'staff_id'; score=0.990 >= 0.9.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 112,
    "funcName": "to_directional_mapping",
    "created": 1557606600.414242,
    "msecs": 506.0,
    "relativeCreated": 1086.1139297485352,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Accepted: 'id' -> 'staff_id'; score=0.990 >= 0.9."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "This match supersedes 10 other matches:\n    'id' -> 'store_id'; score=0.608 < 0.9 (below threshold).\n    'id' -> 'password'; score=0.239 < 0.9 (below threshold).\n    'id' -> 'address_id'; score=0.160 < 0.9 (below threshold).\n    'id' -> 'email'; score=0.120 < 0.9 (below threshold).\n    'id' -> 'picture'; score=0.063 < 0.9 (below threshold).\n    'id' -> 'active'; score=0.043 < 0.9 (below threshold).\n    'id' -> 'first_name'; score=-0.001 < 0.9 (below threshold).\n    'id' -> 'username'; score=-0.004 < 0.9 (below threshold).\n    'id' -> 'last_name'; score=-0.009 < 0.9 (below threshold).\n    'id' -> 'last_update'; score=-0.010 < 0.9 (below threshold).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/support.py",
    "filename": "support.py",
    "module": "support",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 116,
    "funcName": "to_directional_mapping",
    "created": 1557606600.414265,
    "msecs": 506.0,
    "relativeCreated": 1086.1375331878662,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "This match supersedes 10 other matches:\n    'id' -> 'store_id'; score=0.608 < 0.9 (below threshold).\n    'id' -> 'password'; score=0.239 < 0.9 (below threshold).\n    'id' -> 'address_id'; score=0.160 < 0.9 (below threshold).\n    'id' -> 'email'; score=0.120 < 0.9 (below threshold).\n    'id' -> 'picture'; score=0.063 < 0.9 (below threshold).\n    'id' -> 'active'; score=0.043 < 0.9 (below threshold).\n    'id' -> 'first_name'; score=-0.001 < 0.9 (below threshold).\n    'id' -> 'username'; score=-0.004 < 0.9 (below threshold).\n    'id' -> 'last_name'; score=-0.009 < 0.9 (below threshold).\n    'id' -> 'last_update'; score=-0.010 < 0.9 (below threshold)."
  },
  {
    "name": "id_translation.mapping.placeholders.sql-fetcher-toml.verbose",
    "msg": "Mapping with cardinality='ManyToOne' completed for ['last_name', 'id', 'name']x['staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'] in 5ms. Matches:\n    'last_name' -> ('last_name',)\n    'id' -> ('staff_id',)\n    'name' -> ('first_name',)\nMatched 3/3 values with 3 different candidates.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/mapping/_mapper.py",
    "filename": "_mapper.py",
    "module": "_mapper",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 167,
    "funcName": "apply",
    "created": 1557606600.414811,
    "msecs": 507.0,
    "relativeCreated": 1086.6773128509521,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "message": "Mapping with cardinality='ManyToOne' completed for ['last_name', 'id', 'name']x['staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'] in 5ms. Matches:\n    'last_name' -> ('last_name',)\n    'id' -> ('staff_id',)\n    'name' -> ('first_name',)\nMatched 3/3 values with 3 different candidates."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'} for source='staff': {'last_name': ('last_name',), 'id': ('staff_id',), 'name': ('first_name',)}.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 198,
    "funcName": "map_placeholders",
    "created": 1557606600.414873,
    "msecs": 507.0,
    "relativeCreated": 1086.7393016815186,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "SQLFETCHER.MAP_PLACEHOLDERS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.MAP_PLACEHOLDERS.EXIT",
    "execution_time": 0.004784007998750894,
    "mapping": {
      "last_name": [
        "last_name"
      ],
      "id": [
        "staff_id"
      ],
      "name": [
        "first_name"
      ]
    },
    "context": "staff",
    "config_file": "sql-fetcher.toml",
    "message": "Finished wanted-to-actual placeholder mapping of placeholders={'last_name', 'id', 'name'} to actual placeholders={'staff_id', 'first_name', 'address_id', 'username', 'picture', 'email', 'password', 'store_id', 'active', 'last_name', 'last_update'} for source='staff': {'last_name': ('last_name',), 'id': ('staff_id',), 'name': ('first_name',)}."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Begin fetching placeholders=('last_name', 'staff_id', 'first_name') from source='staff' for 2 IDs.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 477,
    "funcName": "_call_user_impl",
    "created": 1557606600.414921,
    "msecs": 507.0,
    "relativeCreated": 1086.7893695831299,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "event_key": "SQLFETCHER.FETCH_TRANSLATIONS",
    "event_stage": "ENTER",
    "event_title": "SQLFETCHER.FETCH_TRANSLATIONS.ENTER",
    "source": "staff",
    "placeholders": [
      "last_name",
      "staff_id",
      "first_name"
    ],
    "required_placeholders": [
      "staff_id",
      "first_name"
    ],
    "num_ids": 2,
    "fetch_all": false,
    "task_id": 8362323,
    "config_file": "sql-fetcher.toml",
    "message": "Begin fetching placeholders=('last_name', 'staff_id', 'first_name') from source='staff' for 2 IDs."
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Full SELECT-query using Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila):\nSELECT staff.last_name, staff.staff_id, staff.first_name \nFROM staff \nWHERE staff.staff_id IN (1, 2)",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_sql_fetcher.py",
    "filename": "_sql_fetcher.py",
    "module": "_sql_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 230,
    "funcName": "_log_query",
    "created": 1557606600.415301,
    "msecs": 507.0,
    "relativeCreated": 1087.167739868164,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "table": "staff",
    "config_file": "sql-fetcher.toml",
    "message": "Full SELECT-query using Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila):\nSELECT staff.last_name, staff.staff_id, staff.first_name \nFROM staff \nWHERE staff.staff_id IN (1, 2)"
  },
  {
    "name": "id_translation.fetching.sql-fetcher-toml",
    "msg": "Finished fetching placeholders=('last_name', 'staff_id', 'first_name') for 2 IDs from source 'staff' in 3ms, using SqlFetcher(Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila), blacklist={'store', 'category', 'inventory', 'rental', 'payment'}).",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_abstract_fetcher.py",
    "filename": "_abstract_fetcher.py",
    "module": "_abstract_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 497,
    "funcName": "_call_user_impl",
    "created": 1557606600.417631,
    "msecs": 510.0,
    "relativeCreated": 1089.486837387085,
    "thread": 123867785852608,
    "threadName": "MultiFetcher_0",
    "processName": "MainProcess",
    "process": 34525,
    "event_key": "SQLFETCHER.FETCH_TRANSLATIONS",
    "event_stage": "EXIT",
    "event_title": "SQLFETCHER.FETCH_TRANSLATIONS.EXIT",
    "execution_time": 0.0026500229996599955,
    "source": "staff",
    "placeholders": [
      "last_name",
      "staff_id",
      "first_name"
    ],
    "num_ids": 2,
    "fetch_all": false,
    "task_id": 8362323,
    "config_file": "sql-fetcher.toml",
    "message": "Finished fetching placeholders=('last_name', 'staff_id', 'first_name') for 2 IDs from source 'staff' in 3ms, using SqlFetcher(Engine(postgresql+pg8000://postgres:***@localhost:5002/sakila), blacklist={'store', 'category', 'inventory', 'rental', 'payment'})."
  },
  {
    "name": "id_translation.fetching.MultiFetcher",
    "msg": "Completed FETCH jobs for 4 sources using 2 different fetchers in 30ms.",
    "args": [],
    "levelname": "DEBUG",
    "levelno": 10,
    "pathname": "<site-packages>/id_translation/fetching/_multi_fetcher.py",
    "filename": "_multi_fetcher.py",
    "module": "_multi_fetcher",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 285,
    "funcName": "fetch",
    "created": 1557606600.417963,
    "msecs": 510.0,
    "relativeCreated": 1089.8220539093018,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "MULTIFETCHER.FETCH",
    "event_stage": "EXIT",
    "event_title": "MULTIFETCHER.FETCH.EXIT",
    "execution_time": 0.030270946999735315,
    "sources": 4,
    "max_workers": 2,
    "num_fetchers": 2,
    "fetch_all": false,
    "message": "Completed FETCH jobs for 4 sources using 2 different fetchers in 30ms."
  },
  {
    "name": "id_translation.Translator.translate",
    "msg": "Finished translation of 4 names in 'DataFrame'-type data in 38ms, using name-to-source mapping: {'customer_id': 'customer', 'film_id': 'film', 'category_id': 'category', 'staff_id': 'staff'}.",
    "args": [],
    "levelname": "INFO",
    "levelno": 20,
    "pathname": "<site-packages>/id_translation/_tasks/_translate.py",
    "filename": "_translate.py",
    "module": "_translate",
    "exc_info": null,
    "exc_text": null,
    "stack_info": null,
    "lineno": 177,
    "funcName": "log_key_event_exit",
    "created": 1557606600.42005,
    "msecs": 512.0,
    "relativeCreated": 1091.9110774993896,
    "thread": 123868956586112,
    "threadName": "MainThread",
    "processName": "MainProcess",
    "process": 34525,
    "task_id": 8362323,
    "event_key": "TRANSLATOR.TRANSLATE",
    "event_stage": "EXIT",
    "event_title": "TRANSLATOR.TRANSLATE.EXIT",
    "execution_time": 0.038065849999838974,
    "duration_ms": {
      "map": 5.5,
      "extract": 0.1,
      "fetch": 30.5,
      "verify": 0.4,
      "insert": 1.6,
      "total": 38.1
    },
    "translatable_type": "pandas.core.frame.DataFrame",
    "copy": false,
    "reverse": false,
    "name_to_source": {
      "customer_id": "customer",
      "film_id": "film",
      "category_id": "category",
      "staff_id": "staff"
    },
    "message": "Finished translation of 4 names in 'DataFrame'-type data in 38ms, using name-to-source mapping: {'customer_id': 'customer', 'film_id': 'film', 'category_id': 'category', 'staff_id': 'staff'}."
  }
]