Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

88orm

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

88orm - npm Package Compare versions

Comparing version
0.1.9
to
0.1.9.1
+1
-1
88orm.egg-info/PKG-INFO
Metadata-Version: 2.1
Name: 88orm
Version: 0.1.9
Version: 0.1.9.1
Summary: ORM Service Connector

@@ -5,0 +5,0 @@ Home-page: http://pypi.python.org/pypi/88orm/

@@ -12,3 +12,5 @@ # -*- coding: utf-8 -*-

import base64
import json
from datetime import date, datetime
from typing import List

@@ -19,2 +21,3 @@ from urllib.parse import urljoin

from django.conf import settings
from django.core.files.base import ContentFile
from django.db import models

@@ -135,2 +138,5 @@ from django.db.models import Q, ObjectDoesNotExist

def __call__(self, *args, **kwargs):
return VirtualModel(self._model_name, self.__payload_request)
@cached_property

@@ -249,6 +255,11 @@ def __exclude_params(self):

related = self._get_related_field(key)
foreign_field = related.get('foreign_related_fields')
if foreign_field == 'timestampedmortalbasemodel_ptr':
foreign_field = 'pk'
elif hasattr(value, f'{foreign_field}_id'):
foreign_field = f'{foreign_field}_id'
if related.get('type') in ['ForeignKey', 'OneToOneField']:
foreign_field = related.get('foreign_related_fields')
kwargs.pop(key)
kwargs.update({
key: getattr(value, foreign_field)
f'{key}_id': getattr(value, foreign_field)
})

@@ -346,2 +357,22 @@ elif isinstance(value, ORM88):

def _serialize_data(self, data: dict):
ret = data.copy()
for key, value in data.items():
if isinstance(value, (date, datetime)):
ret.update({
key: str(value)
})
elif isinstance(value, VirtualModel):
ret.pop(key)
ret.update({
f'{key}_id': value.pk
})
elif isinstance(value, ContentFile):
b64_value = base64.b64encode(value.file.getvalue())
value = f"data:image/jpeg;base64,{b64_value.decode()}"
ret.update({
key: value
})
return ret
# --- fetch data from orm services

@@ -484,3 +515,3 @@ def __request_get(self, url, payload, params=None):

'args': [],
'kwargs': kwargs
'kwargs': self._serialize_data(kwargs)
})

@@ -519,3 +550,4 @@ return self.fetch()

payload_requests = list(
map(lambda orm: orm._ORM88__payload_request, payloads))
map(lambda orm: orm._ORM88__payload_request, payloads)
)
url = urljoin(ORM_SERVICE_URL, "/api/v1/orm_services/execute_many")

@@ -539,2 +571,5 @@ response = requests.get(url, data=json.dumps(payload_requests), headers={

url = urljoin(ORM_SERVICE_URL, "/api/v1/orm_services/save")
payload.get('payload')['save'] = self._serialize_data(
payload.get('payload').get('save')
)
return self.__request_post(

@@ -541,0 +576,0 @@ url=url,

@@ -7,2 +7,3 @@ import json

from django.conf import settings
from django.utils.functional import cached_property

@@ -52,9 +53,12 @@ from .related_descriptors import create_reverse_many_to_one

def __repr__(self):
key = self._attrs.get(
'__str__',
(self._attrs.get('id') or
self._attrs.get(
next(iter(self._attrs))
))
)
if self._attrs:
key = self._attrs.get(
'__str__',
(self._attrs.get('id') or
self._attrs.get(
next(iter(self._attrs))
))
)
else:
key = None
return f"<{self._class_name}: {key}>"

@@ -79,14 +83,18 @@

@cached_property
def _save_fields(self):
fields = self._fields.copy()
for key, value in fields.copy().items():
if value.get('type') == 'ManyToManyField':
fields.pop(key)
return fields
def _set_attr_single_instance(self, key, value):
from .connector import ORM88
if hasattr(self, key):
return None
attr_value = None
if self._attrs.get(f"{key}_id"):
if not hasattr(self, key) and f"{key}_id" in self._attrs:
related_model = value.get('related_model')
model = f"{related_model.get('app_label')}.{related_model.get('name')}"
attr_value = ORM88(model)
setattr(self, key, attr_value)
setattr(self, key, attr_value)

@@ -223,4 +231,6 @@ def set_many_to_one_or_many(self, key, value, related_field):

if isinstance(attrs, dict):
for key, value in attrs:
for key, value in attrs.items():
setattr(self, key, value)
return self
raise ValueError(attrs)

@@ -236,10 +246,26 @@ def save(self):

model_fields = {}
for field in self._fields:
model_fields.update({
field: self._attrs.get(field)
})
for field in self._save_fields:
value = self._attrs.get(field)
if isinstance(value, ORM88):
field = f'{field}_id'
value = getattr(self, field)
if value is not None:
model_fields.update({
field: value
})
payload.get("payload").update({
"save": model_fields
})
return instance._save(payload)
ret = instance._save(payload)
self._set_value(ret)
self._payload.get('payload').pop('save')
self._payload.get('payload').update({
'get': {
'args': [],
'kwargs': {
'id': self.id
}
}
})
return self

@@ -246,0 +272,0 @@

Metadata-Version: 2.1
Name: 88orm
Version: 0.1.9
Version: 0.1.9.1
Summary: ORM Service Connector

@@ -5,0 +5,0 @@ Home-page: http://pypi.python.org/pypi/88orm/

@@ -8,3 +8,3 @@ import setuptools

name="88orm",
version="0.1.9",
version="0.1.9.1",
author="Rimba Prayoga",

@@ -11,0 +11,0 @@ author_email="rimba47prayoga@gmail.com",