thuang-compress-annotation (#1980)

* thuang-compress-annotation

* compress test

* use zlib.decompress directly
This commit is contained in:
Timmy Huang
2020-11-17 14:05:07 -08:00
committed by GitHub
parent 095db02439
commit 2cf55ab819
5 changed files with 14 additions and 6 deletions
+6 -1
View File
@@ -2,6 +2,7 @@ import copy
import logging
import sys
from http import HTTPStatus
import zlib
from flask import make_response, jsonify, current_app, abort
from werkzeug.urls import url_unquote
@@ -159,13 +160,17 @@ def annotations_put_fbs_helper(data_adaptor, fbs):
annotations.write_labels(new_label_df, data_adaptor)
def inflate(data):
return zlib.decompress(data)
def annotations_obs_put(request, data_adaptor):
annotations = data_adaptor.dataset_config.user_annotations
if annotations is None:
return abort(HTTPStatus.NOT_IMPLEMENTED)
anno_collection = request.args.get("annotation-collection-name", default=None)
fbs = request.get_data()
fbs = inflate(request.get_data())
if anno_collection is not None:
if not annotations.is_safe_collection_name(anno_collection):
+2 -1
View File
@@ -1,6 +1,7 @@
import shutil
import time
import unittest
import zlib
from http import HTTPStatus
import pandas as pd
@@ -343,7 +344,7 @@ class EndPointsAnnotations(EndPoints):
url = f"{self.URL_BASE}{endpoint}?{query}"
n_rows = self.data.get_shape()[0]
fbs = make_fbs({"cat_A": pd.Series(["label_A"] * n_rows, dtype="category")})
result = self.session.put(url, data=fbs)
result = self.session.put(url, data=zlib.compress(fbs))
self.assertEqual(result.status_code, HTTPStatus.OK)
self.assertEqual(result.headers["Content-Type"], "application/json")
self.assertEqual(result.json(), {"status": "OK"})