Skip to main content

mapping utility tool for sdmx based partial mappings

Project description

An SDMX mapping utility to generate partial key maps for referential metadata. Although not designed to do that, data mappings are also possible. The package is structured in such a way that it can be used as a package without the FASTAPI overhead.

Three methods are available:

  • map_withFile GET method (receiving the mapping source and mapping rules both as file references)
  • map_withURN GET method (receiving the mapping source as file and the mapping rules as SDMX registry endpoint + mapping ID)
  • map_json_withURN POST method (receiving the mapping source as the body of the request in json - pandas dataframe dictionary style - and mapping rules as SDMX registry endpoint + mapping ID) (added in version 0.1.1)

A typical usage example in package mode:

    from mappings_utility.sdmx_mapping_utility import SDMXMappingUtility 
    
    mf = Path('to-mapping-artefacts.xml')
    sf = Path('to-file-to-be-mapped.csv')
    mu = SDMXMappingUtility.initialise_with_file(mf, sf, sid_based=False)
    df = mu.generate_mappings_partial_keys(
        includeSourceColumns=False,
        includeAttributesMeasures=False,
        nulledFixedTargets=True,
        writeTargetStructInfo=False,
        dropInvalid=False,
        sid_based=False
        )
    df.to_csv(Path('mapped-file.csv'), index=False)

The parameters fine-tune the output file:

  • includeSourceColumns: True/False; when set to True the resulting file would include the fields of the source csv file
  • includeAttributesMeasures: True/False; when True it will include the attribute columns and obs_value, otherwise it will suppress those from the output (this is needed for referential metadata partial key mappings)
  • nulledFixedTargets: True/False, when True fixed values in the target mapping will be set to Null, also a partial-key mapping motivated feature
  • writeTargetStructInfo: True/False, when True it adds or maps columns necessary for the output to be SDMX-CSV compliant
  • dropInvalid: True/False, when set to True the output only contains valid mappings (although validity checks are lazy), invalid rows are ommitted; with False the returned dataframe will contain cells with a special string highlighting the positions where the target value could not be determined
  • sid_based: True/False, when set to True the resulting file will contain a Series ID (SID) field with the dimensions of the target data model dot-concatenated

Changelog:

  • Version 0.2.3 Introduced validation for implicit maps (target codes are checked whether they are in the referenced codelist - constraints are not yet taken into account)
  • Version 0.2.4 Bug-fix for regex substitution (previously substitutions with more than one substitution failed)
  • Version 0.2.5
    • Attributes scaffolding for future features (validates coded attributes)
    • Bug-fix for optional attributes missing when all values are null

Project details


Download files

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

Source Distribution

mappings_utility-0.2.6.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

mappings_utility-0.2.6-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file mappings_utility-0.2.6.tar.gz.

File metadata

  • Download URL: mappings_utility-0.2.6.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Windows/11

File hashes

Hashes for mappings_utility-0.2.6.tar.gz
Algorithm Hash digest
SHA256 fd031abdd13248e1e99b87cafb891f430b6f59e400101495a1083f4eff0f5021
MD5 ea71d2afb858def79d93ae968bb23aed
BLAKE2b-256 a62cbbdbadf7aa91a03d95c8e8b69617a0f86bdb05006d3d8c2fa0a71f5e85a0

See more details on using hashes here.

File details

Details for the file mappings_utility-0.2.6-py3-none-any.whl.

File metadata

File hashes

Hashes for mappings_utility-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e4b3441d0236c07de77b1e0320d43b7b4d15c77ab32517fb029c045dcc257ff5
MD5 57c9f5d32cc5baedeb42918325c26536
BLAKE2b-256 2d7d336d6dac4fc93e0276082567b2e2e59d0723435c1e2858c2bdbb537d8306

See more details on using hashes here.

Supported by

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