Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
ObjectMapper is a class for automatic object mapping. It helps you to create objects between project layers (data layer, service layer, view) in a simple, transparent way.
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 ---
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
1.0.3 - 2015/05/15
1.0.2 - 2015/05/06
1.0.1 - 2015/02/19
1.0.0 - 2015/02/19
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.
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.
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
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).
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
ENJOY IT!
FAQs
ObjectMapper is a class for automatic object mapping. It helps you to create objects between project layers (data layer, service layer, view) in a simple, transparent way.
We found that object-mapper demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.