From 0504c5750a5323f9c7f89b34aecbae8fc517dc8e Mon Sep 17 00:00:00 2001 From: Ali Abid Date: Thu, 20 Aug 2020 04:57:07 -0700 Subject: [PATCH] demos --- build/lib/gradio/networking.py | 4 +++- demo/files.py | 8 -------- demo/spectogram.py | 17 +++++++++++++++++ demo/tmp.zip | Bin 0 -> 129276 bytes demo/zip_to_json.py | 15 +++++++++++++++ demo/zip_two_files.py | 10 ++++++++++ 6 files changed, 45 insertions(+), 9 deletions(-) delete mode 100644 demo/files.py create mode 100644 demo/spectogram.py create mode 100644 demo/tmp.zip create mode 100644 demo/zip_to_json.py create mode 100644 demo/zip_two_files.py diff --git a/build/lib/gradio/networking.py b/build/lib/gradio/networking.py index 15879b1634..82b5021a14 100644 --- a/build/lib/gradio/networking.py +++ b/build/lib/gradio/networking.py @@ -151,11 +151,13 @@ def serve_files_in_background(interface, port, directory_to_serve=None, server_n if self.path == "/api/predict/": # Make the prediction. self._set_headers() + print("in") data_string = self.rfile.read( int(self.headers["Content-Length"])) msg = json.loads(data_string) raw_input = msg["data"] prediction, durations = interface.process(raw_input) + print("prediction") output = {"data": prediction, "durations": durations} self.wfile.write(json.dumps(output).encode()) @@ -262,4 +264,4 @@ def url_ok(url): r = requests.head(url) return r.status_code == 200 except ConnectionError: - return False \ No newline at end of file + return False diff --git a/demo/files.py b/demo/files.py deleted file mode 100644 index f15184c731..0000000000 --- a/demo/files.py +++ /dev/null @@ -1,8 +0,0 @@ -import gradio as gr -import random - -def upload(file): - print(file.name) - return "/mnt/c/Users/aliab/projects/gradio/gradio/static/js/interfaces/output/file.js" - -gr.Interface(upload, "file", "file").launch() diff --git a/demo/spectogram.py b/demo/spectogram.py new file mode 100644 index 0000000000..e550738efb --- /dev/null +++ b/demo/spectogram.py @@ -0,0 +1,17 @@ +import gradio as gr +import matplotlib.pyplot as plt +import numpy as np +from scipy import signal +from scipy.io import wavfile + + +def reverse_audio(audio): + sr, data = audio + data = np.delete(data, 1, 1).reshape(-1) + frequencies, times, spectrogram = signal.spectrogram(data.reshape(-1), sr, window="hamming") + + plt.pcolormesh(times, frequencies, np.log10(spectrogram)) + return plt + + +gr.Interface(reverse_audio, "audio", "plot").launch() diff --git a/demo/tmp.zip b/demo/tmp.zip new file mode 100644 index 0000000000000000000000000000000000000000..b7d8e420260fde90fd82e373e42cde98adb088dc GIT binary patch literal 129276 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 literal 0 HcmV?d00001 diff --git a/demo/zip_to_json.py b/demo/zip_to_json.py new file mode 100644 index 0000000000..a4bb665742 --- /dev/null +++ b/demo/zip_to_json.py @@ -0,0 +1,15 @@ +import gradio as gr +from zipfile import ZipFile + +def zip_to_json(file_obj): + files = [] + with ZipFile(file_obj.name) as zfile: + for zinfo in zfile.infolist(): + files.append({ + "name": zinfo.filename, + "file_size": zinfo.file_size, + "compressed_size": zinfo.compress_size, + }) + return files + +gr.Interface(zip_to_json, "file", "json").launch() diff --git a/demo/zip_two_files.py b/demo/zip_two_files.py new file mode 100644 index 0000000000..49c5402164 --- /dev/null +++ b/demo/zip_two_files.py @@ -0,0 +1,10 @@ +import gradio as gr +from zipfile import ZipFile + +def zip_two_files(file1, file2): + with ZipFile('tmp.zip', 'w') as zipObj: + zipObj.write(file1.name, "file1") + zipObj.write(file2.name, "file2") + return "tmp.zip" + +gr.Interface(zip_two_files, ["file", "file"], "file").launch() \ No newline at end of file