From e36e05cf98513fc302d4f52552750b36f023bec2 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 31 Jul 2021 21:57:30 -0600 Subject: [PATCH] minimal python requests externs --- projects/requests-externs/build.hxml | 5 ++++ projects/requests-externs/haxelib.json | 17 +++++++++++++ .../src/requests_externs/Main.hx | 8 ++++++ .../src/requests_externs/Main.kiss | 1 + .../src/requests_externs/Requests.hx | 25 +++++++++++++++++++ .../src/requests_externs/Response.hx | 4 +++ projects/requests-externs/test.sh | 3 +++ 7 files changed, 63 insertions(+) create mode 100644 projects/requests-externs/build.hxml create mode 100644 projects/requests-externs/haxelib.json create mode 100644 projects/requests-externs/src/requests_externs/Main.hx create mode 100644 projects/requests-externs/src/requests_externs/Main.kiss create mode 100644 projects/requests-externs/src/requests_externs/Requests.hx create mode 100644 projects/requests-externs/src/requests_externs/Response.hx create mode 100644 projects/requests-externs/test.sh diff --git a/projects/requests-externs/build.hxml b/projects/requests-externs/build.hxml new file mode 100644 index 00000000..ecbe6e5e --- /dev/null +++ b/projects/requests-externs/build.hxml @@ -0,0 +1,5 @@ +-lib kiss +-cp src +--main requests_externs.Main +--python bin/main.py +--cmd python bin/main.py diff --git a/projects/requests-externs/haxelib.json b/projects/requests-externs/haxelib.json new file mode 100644 index 00000000..493b004a --- /dev/null +++ b/projects/requests-externs/haxelib.json @@ -0,0 +1,17 @@ +{ + "main": "requests_externs.Main", + "name": "requests-externs", + "description": "barebones python requests", + "classPath": "src/", + "dependencies": { + "kiss": "" + }, + "url": "https://github.com/NQNStudios/kisslang", + "contributors": [ + "NQNStudios" + ], + "version": "0.0.0", + "releasenote": "", + "tags": [], + "license": "LGPL" +} \ No newline at end of file diff --git a/projects/requests-externs/src/requests_externs/Main.hx b/projects/requests-externs/src/requests_externs/Main.hx new file mode 100644 index 00000000..1de32f8a --- /dev/null +++ b/projects/requests-externs/src/requests_externs/Main.hx @@ -0,0 +1,8 @@ +package requests_externs; + +import kiss.Kiss; +import kiss.Prelude; +import requests_externs.Requests; + +@:build(kiss.Kiss.build()) +class Main {} diff --git a/projects/requests-externs/src/requests_externs/Main.kiss b/projects/requests-externs/src/requests_externs/Main.kiss new file mode 100644 index 00000000..d376c948 --- /dev/null +++ b/projects/requests-externs/src/requests_externs/Main.kiss @@ -0,0 +1 @@ +~(Requests.get "https://google.com/search" [=>"q" "test"] /*(object)*/) diff --git a/projects/requests-externs/src/requests_externs/Requests.hx b/projects/requests-externs/src/requests_externs/Requests.hx new file mode 100644 index 00000000..97491a15 --- /dev/null +++ b/projects/requests-externs/src/requests_externs/Requests.hx @@ -0,0 +1,25 @@ +package requests_externs; + +import haxe.extern.EitherType; +import python.Dict; +import python.KwArgs; +import requests_externs.Response; + +typedef RequestKwArgs = { + ?headers:Map +} + +@:pythonImport("requests") +extern class NativeRequests { + public static function get(url:String, params:Dict, ?kwArgs:KwArgs):Response; +} + +class Requests { + public static function get(url:String, params:Map, ?kwArgs:KwArgs):Response { + var dict = new Dict(); + for (param => value in params) { + dict.set(param, value); + } + return NativeRequests.get(url, dict, kwArgs); + } +} diff --git a/projects/requests-externs/src/requests_externs/Response.hx b/projects/requests-externs/src/requests_externs/Response.hx new file mode 100644 index 00000000..fa6b7845 --- /dev/null +++ b/projects/requests-externs/src/requests_externs/Response.hx @@ -0,0 +1,4 @@ +package requests_externs; + +@:pythonImport("requests.Response") +extern class Response {} diff --git a/projects/requests-externs/test.sh b/projects/requests-externs/test.sh new file mode 100644 index 00000000..0ee8ae95 --- /dev/null +++ b/projects/requests-externs/test.sh @@ -0,0 +1,3 @@ +#! /bin/bash + +haxe build.hxml \ No newline at end of file