From: Andreas Gerler Date: Thu, 18 Jul 2024 13:14:31 +0000 (+0200) Subject: update ob-restclient X-Git-Url: http://git.bundesbrandschatzamt.de/?a=commitdiff_plain;h=a7277bbdaa51a1e992b85ac54225e1dcbfa512b5;p=emacsconfig.git update ob-restclient Signed-off-by: Andreas Gerler --- diff --git a/elpa/ob-restclient-20230301.1951/ob-restclient-autoloads.el b/elpa/ob-restclient-20230301.1951/ob-restclient-autoloads.el deleted file mode 100644 index 4c1aadc7..00000000 --- a/elpa/ob-restclient-20230301.1951/ob-restclient-autoloads.el +++ /dev/null @@ -1,37 +0,0 @@ -;;; ob-restclient-autoloads.el --- automatically extracted autoloads -*- lexical-binding: t -*- -;; -;;; Code: - -(add-to-list 'load-path (directory-file-name - (or (file-name-directory #$) (car load-path)))) - - -;;;### (autoloads nil "ob-restclient" "ob-restclient.el" (0 0 0 0)) -;;; Generated autoloads from ob-restclient.el - -(autoload 'org-babel-execute:restclient "ob-restclient" "\ -Execute a block of Restclient code with org-babel. -This function is called by `org-babel-execute-src-block' - -\(fn BODY PARAMS)" nil nil) - -(autoload 'org-babel-variable-assignments:restclient "ob-restclient" "\ -Return a list of restclient statements assigning the block's variables specified in PARAMS. - -\(fn PARAMS)" nil nil) - -(register-definition-prefixes "ob-restclient" '("org-babel-")) - -;;;*** - -;;;### (autoloads nil nil ("ob-restclient-pkg.el") (0 0 0 0)) - -;;;*** - -;; Local Variables: -;; version-control: never -;; no-byte-compile: t -;; no-update-autoloads: t -;; coding: utf-8 -;; End: -;;; ob-restclient-autoloads.el ends here diff --git a/elpa/ob-restclient-20230301.1951/ob-restclient-pkg.el b/elpa/ob-restclient-20230301.1951/ob-restclient-pkg.el deleted file mode 100644 index 3cd45970..00000000 --- a/elpa/ob-restclient-20230301.1951/ob-restclient-pkg.el +++ /dev/null @@ -1,14 +0,0 @@ -(define-package "ob-restclient" "20230301.1951" "org-babel functions for restclient-mode" - '((restclient "0")) - :commit "ded3b7eb7b0592328a7a08ecce6f25278cba4a1d" :authors - '(("Alf Lervåg")) - :maintainers - '(("Alf Lervåg")) - :maintainer - '("Alf Lervåg") - :keywords - '("literate programming" "reproducible research") - :url "https://github.com/alf/ob-restclient.el") -;; Local Variables: -;; no-byte-compile: t -;; End: diff --git a/elpa/ob-restclient-20230301.1951/ob-restclient.el b/elpa/ob-restclient-20230301.1951/ob-restclient.el deleted file mode 100644 index ff5cf6b9..00000000 --- a/elpa/ob-restclient-20230301.1951/ob-restclient.el +++ /dev/null @@ -1,145 +0,0 @@ -;;; ob-restclient.el --- org-babel functions for restclient-mode - -;; Copyright (C) Alf Lervåg - -;; Author: Alf Lervåg -;; Keywords: literate programming, reproducible research -;; Homepage: https://github.com/alf/ob-restclient.el -;; Version: 0.02 -;; Package-Requires: ((restclient "0")) - -;;; License: - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. -;; -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. -;; -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Commentary: -;; This is a very simple first iteration at integrating restclient.el -;; and org-mode. - -;;; Requirements: -;; restclient.el - -;;; Code: -(require 'ob) -(require 'ob-ref) -(require 'ob-comint) -(require 'ob-eval) -(require 'restclient) - -(defvar org-babel-default-header-args:restclient - `((:results . "raw")) - "Default arguments for evaluating a restclient block.") - -(defcustom org-babel-restclient--jq-path "jq" - "The path to `jq', for post-processing. Uses the PATH by default") - -;;;###autoload -(defun org-babel-execute:restclient (body params) - "Execute a block of Restclient code with org-babel. -This function is called by `org-babel-execute-src-block'" - (message "executing Restclient source code block") - (with-temp-buffer - (let ((results-buffer (current-buffer)) - (restclient-same-buffer-response t) - (restclient-response-body-only (org-babel-restclient--should-hide-headers-p params)) - (restclient-same-buffer-response-name (buffer-name)) - (display-buffer-alist - (cons - '("\\*temp\\*" display-buffer-no-window (allow-no-window . t)) - display-buffer-alist))) - - (insert (buffer-name)) - (with-temp-buffer - (dolist (p params) - (let ((key (car p)) - (value (cdr p))) - (when (eql key :var) - (insert (format ":%s = <<\n%s\n#\n" (car value) (cdr value)))))) - (insert body) - (goto-char (point-min)) - (delete-trailing-whitespace) - (goto-char (point-min)) - (restclient-http-parse-current-and-do - 'restclient-http-do (org-babel-restclient--raw-payload-p params) t)) - - (while restclient-within-call - (sleep-for 0.05)) - - (goto-char (point-min)) - (when (equal (buffer-name) (buffer-string)) - (error "Restclient encountered an error")) - - (when-let* ((jq-header (assoc :jq params)) - (jq-path "jq") - (jq-args (or (cdr (assoc :jq-args params)) ""))) - (shell-command-on-region - (point-min) - (point-max) - (format "%s %s--args %s" org-babel-restclient--jq-path - (if (assq :jq-args params) (format "%s " jq-args) "") - (shell-quote-argument (cdr jq-header))) - (current-buffer) - t)) - - ;; widen if jq but not pure payload - (when (and (assq :jq params) - (not (assq :noheaders params)) - (not (org-babel-restclient--return-pure-payload-result-p params))) - (widen)) - - (when (not (org-babel-restclient--return-pure-payload-result-p params)) - (org-babel-restclient--wrap-result)) - - (buffer-string)))) - -;;;###autoload -(defun org-babel-variable-assignments:restclient (params) - "Return a list of restclient statements assigning the block's variables specified in PARAMS." - (mapcar - (lambda (pair) - (let ((name (car pair)) - (value (cdr pair))) - (format ":%s = %s" name value))) - (org-babel--get-vars params))) - -(defun org-babel-restclient--wrap-result () - "Wrap the contents of the buffer in an `org-mode' src block." - (let ((mode-name (substring (symbol-name major-mode) 0 -5))) - (insert (format "#+BEGIN_SRC %s\n" mode-name)) - (goto-char (point-max)) - (insert "#+END_SRC\n"))) - -(defun org-babel-restclient--should-hide-headers-p (params) - "Return `t' if headers should be hidden." - (or (org-babel-restclient--return-pure-payload-result-p params) - (assq :noheaders params) - (assq :jq params))) - -(defun org-babel-restclient--return-pure-payload-result-p (params) - "Return `t' if the `:results' key in PARAMS contains `value' or `table'." - (let ((result-type (cdr (assoc :results params)))) - (when result-type - (string-match "value\\|table" result-type)))) - - -(defun org-babel-restclient--raw-payload-p (params) - "Return t if the `:results' key in PARAMS contain `file'." - (let ((result-type (cdr (assoc :results params)))) - (when result-type - (string-match "file" result-type)))) - -(provide 'ob-restclient) -;;; ob-restclient.el ends here diff --git a/elpa/ob-restclient-20231228.1403/ob-restclient-autoloads.el b/elpa/ob-restclient-20231228.1403/ob-restclient-autoloads.el new file mode 100644 index 00000000..a503d930 --- /dev/null +++ b/elpa/ob-restclient-20231228.1403/ob-restclient-autoloads.el @@ -0,0 +1,37 @@ +;;; ob-restclient-autoloads.el --- automatically extracted autoloads (do not edit) -*- lexical-binding: t -*- +;; Generated by the `loaddefs-generate' function. + +;; This file is part of GNU Emacs. + +;;; Code: + +(add-to-list 'load-path (or (and load-file-name (directory-file-name (file-name-directory load-file-name))) (car load-path))) + + + +;;; Generated autoloads from ob-restclient.el + +(autoload 'org-babel-execute:restclient "ob-restclient" "\ +Execute a block of Restclient code with org-babel. +This function is called by `org-babel-execute-src-block' + +(fn BODY PARAMS)") +(autoload 'org-babel-variable-assignments:restclient "ob-restclient" "\ +Return a list of statements assigning variables specified in PARAMS. + +(fn PARAMS)") +(register-definition-prefixes "ob-restclient" '("org-babel-")) + +;;; End of scraped data + +(provide 'ob-restclient-autoloads) + +;; Local Variables: +;; version-control: never +;; no-byte-compile: t +;; no-update-autoloads: t +;; no-native-compile: t +;; coding: utf-8-emacs-unix +;; End: + +;;; ob-restclient-autoloads.el ends here diff --git a/elpa/ob-restclient-20231228.1403/ob-restclient-pkg.el b/elpa/ob-restclient-20231228.1403/ob-restclient-pkg.el new file mode 100644 index 00000000..1c08d32c --- /dev/null +++ b/elpa/ob-restclient-20231228.1403/ob-restclient-pkg.el @@ -0,0 +1,14 @@ +(define-package "ob-restclient" "20231228.1403" "org-babel functions for restclient-mode" + '((restclient "0")) + :commit "8183f8af08838854cf145ca4855b373f3e7c44b0" :authors + '(("Alf Lervåg")) + :maintainers + '(("Alf Lervåg")) + :maintainer + '("Alf Lervåg") + :keywords + '("literate programming" "reproducible research") + :url "https://github.com/alf/ob-restclient.el") +;; Local Variables: +;; no-byte-compile: t +;; End: diff --git a/elpa/ob-restclient-20231228.1403/ob-restclient.el b/elpa/ob-restclient-20231228.1403/ob-restclient.el new file mode 100644 index 00000000..39f60c24 --- /dev/null +++ b/elpa/ob-restclient-20231228.1403/ob-restclient.el @@ -0,0 +1,179 @@ +;;; ob-restclient.el --- org-babel functions for restclient-mode -*- lexical-binding: t -*- + +;; Copyright (C) Alf Lervåg + +;; Author: Alf Lervåg +;; Keywords: literate programming, reproducible research +;; Homepage: https://github.com/alf/ob-restclient.el +;; Version: 0.03 +;; Package-Requires: ((restclient "0")) + +;;; License: + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. + +;;; Commentary: +;; This is a very simple first iteration at integrating restclient.el +;; and org-mode. + +;;; Requirements: +;; restclient.el + +;;; Code: +(require 'ob) +(require 'ob-ref) +(require 'ob-comint) +(require 'ob-eval) +(require 'org-table) +(require 'restclient) + +(defvar org-babel-default-header-args:restclient + `((:results . "raw")) + "Default arguments for evaluating a restclient block.") + +(defcustom org-babel-restclient--jq-path "jq" + "The path to `jq', for post-processing. Uses the PATH by default" + :type '(string) + :group 'org-babel) + +;;;###autoload +(defun org-babel-execute:restclient (body params) + "Execute a block of Restclient code with org-babel. +This function is called by `org-babel-execute-src-block'" + (message "executing Restclient source code block") + (with-temp-buffer + (let ((results-buffer (current-buffer)) + (restclient-same-buffer-response t) + (restclient-response-body-only (org-babel-restclient--should-hide-headers-p params)) + (restclient-same-buffer-response-name (buffer-name)) + (raw-only (org-babel-restclient--raw-payload-p params)) + (suppress-response-buffer (fboundp #'restclient-http-send-current-suppress-response-buffer)) + (display-buffer-alist + (cons + '("\\*temp\\*" display-buffer-no-window (allow-no-window . t)) + display-buffer-alist))) + + (insert (buffer-name)) + (with-temp-buffer + (insert + (org-babel-expand-body:generic + body params + (org-babel-variable-assignments:restclient params))) + (goto-char (point-min)) + (delete-trailing-whitespace) + (goto-char (point-min)) + (restclient-http-parse-current-and-do 'restclient-http-do raw-only t suppress-response-buffer)) + + (while restclient-within-call + (sleep-for 0.05)) + + (goto-char (point-min)) + (when (equal (buffer-name) (buffer-string)) + (error "Restclient encountered an error")) + + (when-let* ((jq-header (assoc :jq params)) + (jq-path "jq") + (jq-args (or (cdr (assoc :jq-args params)) ""))) + (shell-command-on-region + (point-min) + (point-max) + (format "%s %s--args %s" org-babel-restclient--jq-path + (if (assq :jq-args params) (format "%s " jq-args) "") + (shell-quote-argument (cdr jq-header))) + results-buffer + t)) + + ;; widen if jq but not pure payload + (when (and (assq :jq params) + (not (assq :noheaders params)) + (not (org-babel-restclient--return-pure-payload-result-p params))) + (widen)) + + (if (member "table" (cdr (assoc :result-params params))) + (let* ((separator '(4)) + (result + (condition-case err + (let ((pmax (point-max))) + ;; If the buffer is empty, don't bother trying to + ;; convert the table. + (when (> pmax 1) + (org-table-convert-region (point-min) pmax separator) + (delq nil + (mapcar (lambda (row) + (and (not (eq row 'hline)) + (mapcar #'org-babel-string-read row))) + (org-table-to-lisp))))) + (error + (display-warning 'org-babel + (format "Error reading results: %S" err) + :error) + nil)))) + (pcase result + (`((,scalar)) scalar) + (`((,_ ,_ . ,_)) result) + (`(,scalar) scalar) + (_ result))) + (when (not (org-babel-restclient--return-pure-payload-result-p params)) + (org-babel-restclient--wrap-result)) + (buffer-string))))) + +;;;###autoload +(defun org-babel-variable-assignments:restclient (params) + "Return a list of statements assigning variables specified in PARAMS." + (mapcar + (lambda (pair) + (let ((name (car pair)) + (value (cdr pair)) + (format-string ":%s = %s\n")) + (when (string-match-p "\n" value) + (setq format-string ":%s = <<\n%s\n#\n")) + (format format-string name value))) + (org-babel--get-vars params))) + +(defun org-babel-restclient--wrap-result () + "Wrap the contents of the buffer in an `org-mode' src block." + (let ((mode-name (substring (symbol-name major-mode) 0 -5))) + (insert (format "#+BEGIN_SRC %s\n" mode-name)) + (goto-char (point-max)) + (unless (and (bolp) (eolp)) + (insert "\n")) + (insert "#+END_SRC\n"))) + +(defun org-babel-restclient--should-hide-headers-p (params) + "Return `t' if headers should be hidden." + (or (org-babel-restclient--return-pure-payload-result-p params) + (assq :noheaders params) + (assq :jq params))) + +(defun org-babel-restclient--return-pure-payload-result-p (params) + "Return `t' if the `:results' key in PARAMS contains `value' or `table'." + (let ((result-type (cdr (assoc :results params)))) + (when result-type + (string-match "value\\|table" result-type)))) + +(defun org-babel-prep-session:restclient (_session _params) + "Return an error because restclient does not support sessions." + (error "Restclient does not support sessions")) + +(defun org-babel-restclient--raw-payload-p (params) + "Return t if the `:results' key in PARAMS contain `file'." + (let ((result-type (cdr (assoc :results params)))) + (when result-type + (and (not (org-babel-restclient--should-hide-headers-p params)) + (string-match "file" result-type))))) + +(provide 'ob-restclient) +;;; ob-restclient.el ends here