admin_transporte_backend/project/api/views/proto.py

47 lines
1.2 KiB
Python
Raw Normal View History

2023-12-05 10:34:47 -03:00
from django.views.decorators.csrf import csrf_exempt
from rest_framework.decorators import action, api_view
from api.utils import gtfs_realtime_pb2
from project.settings import BASE_DIR
from django.http import JsonResponse
import logging
def status(request):
nombre_archivo_proto = f'{BASE_DIR}/api/utils/demo.proto'
with open(nombre_archivo_proto, 'rb') as proto_file:
feed = gtfs_realtime_pb2.FeedMessage()
feed.ParseFromString(proto_file.read())
data = {} #get_object(feed)
# logging.error(dir(feed))
# logging.error(feed.header)
# logging.error(dir(feed.entity))
logging.error(feed.entity[0])
# logging.error(dir(feed.entity[0].trip_update))
return JsonResponse(data, safe=False)
def get_object(obj1, obj2 = {}, level = 1):
attributes = dir(obj1)
for attr in attributes:
if attr[0:1] != '_':
try:
for elem in obj1[attr]:
logging.error(elem)
except:
logging.error(attr)
pass
return obj2
def is_subscriptable(obj):
return hasattr(obj, '__getitem__')
def is_iterable(obj):
try:
iter(obj)
return True
except TypeError:
return False