Skip to main content

Version 1.1.0

Author marazt

Copyright marazt

License The MIT License (MIT)

Last updated 13 July 2019

Package Download https://pypi.python.org/pypi/object-mapper —

Versions

1.1.0 - 2019/07/13

1.0.7 - 2019/06/19

1.0.6 - 2018/10/28

1.0.5 - 2018/02/21

1.0.4 - 2017/11/03

  • Migration to new Pypi.org deployment

1.0.3 - 2015/05/15

1.0.2 - 2015/05/06

1.0.1 - 2015/02/19

  • Fix of the package information

1.0.0 - 2015/02/19

  • Initial version

About

ObjectMapper is a class for automatic object mapping inspired by .NET AutoMapper. It helps you to create objects between project layers (data layer, service layer, view) in a simple, transparent way.

Example

  1. Mapping of the properties without mapping definition

In this case are mapped only these properties of the target class which are in target and source classes. Other properties are not mapped. Suppose we have class A with attributes name and last_name and class B with attribute name. Initialization of the ObjectMapper will be:

python mapper = ObjectMapper() mapper.create_map(A, B) instance_b = mapper.map(A(), B)

In this case, value of A.name will be copied into B.name.

  1. Mapping with defined mapping functions

Suppose we have class A with attributes first_name and last_name , class B with attribute full_name and class C with attribute reverse_name. And want to map it in a way B.full_name = A.first_name + A.last_name and C.reverse_name = A.last_name + A.first_name Initialization of the ObjectMapper will be:

```python mapper = ObjectMapper() mapper.create_map(A, B, {‘name’: lambda a : a.first_name + “ “ + a.last_name}) mapper.create_map(A, C, {‘name’: lambda a : a.last_name + “ “ + a.first_name})

instance_b = mapper.map(A(), B) instance_c = mapper.map(A(), C) ```

In this case, to the B.name will be mapped A.first_name + " " + A.last_name In this case, to the C.name will be mapped A.last_name + " " + A.first_name

  1. Mapping suppression

For some purposes, it can be needed to suppress some mapping. Suppose we have class A with attributes name and last_name and class B with attributes name and last_name. And we want to map only the A.name into B.name, but not A.last_name to B.last_name Initialization of the ObjectMapper will be:

```python mapper = ObjectMapper() mapper.create_map(A, B, {‘last_name’: None})

instance_b = mapper.map(A(), B) ```

In this case, value of A.name will be copied into B.name automatically by the attribute name name. Attribute A.last_name will be not mapped thanks the suppression (lambda function is None).

  1. Case insensitive mapping

Suppose we have class A with attributes Name and Age and class B with attributes name and age and we want to map A to B in a way B.name = A.Name and B.age = A.Age Initialization of the ObjectMapper will be:

python mapper = ObjectMapper() mapper.create_map(A, B) instance_b = mapper.map(A(), B, ignore_case=True)

In this case, the value of A.Name will be copied into B.name and the value of A.Age will be copied into B.age.

Note: You can find more examples in tests package

Installation

ENJOY IT!

Metadata

Release files for object-mapper 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for object-mapper 1.1.0
File Interpreter ABI Platform
object_mapper-1.1.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Release files / object_mapper-1.1.0-py2.py3-none-any.whl

Download URL object_mapper-1.1.0-py2.py3-none-any.whl
Size 13.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
15c657b8bee1a1557bcf6d851eb89112018cc7c5a03ce05eb1808628d651b6bb
BLAKE2b-256 checksum
How to use checksums
2e6374cd0f450bea90cd9076d73014d02263edf0f70cccb3ef9ad95d8da3138c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

2 release files

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page