Object Mapper
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
Add basic support for nested object, thanks [@direbearform](https://github.com/direbearform)
1.0.7 - 2019/06/19
Fix type name inside mapper dict to avoid collision, thanks [@renanvieira](https://github.com/renanvieira)
1.0.6 - 2018/10/28
Added ability to specify excluded fields, thanks [@uralov](https://github.com/uralov)
1.0.5 - 2018/02/21
Support for dynamic properties [@nijm](https://github.com/nijm)
1.0.4 - 2017/11/03
Migration to new Pypi.org deployment
1.0.3 - 2015/05/15
Added support for None mapping [@ramiabughazaleh](https://github.com/ramiabughazaleh)
1.0.2 - 2015/05/06
Added support for case insensitivity mapping [@ramiabughazaleh](https://github.com/ramiabughazaleh)
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
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.
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
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).
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
Download this project
Download from Pypi: https://pypi.python.org/pypi/object-mapper
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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| object_mapper-1.1.0-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details for object_mapper-1.1.0-py2.py3-none-any.whl |
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
|
Security for object-mapper 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.