summary refs log tree commit diff
path: root/gnu/packages/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r--gnu/packages/python.scm175
1 files changed, 169 insertions, 6 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index d88d4d3b3a..5b6faf0b5d 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -22,8 +22,9 @@
 
 (define-module (gnu packages python)
   #:use-module ((guix licenses)
-                #:select (bsd-3 bsd-style expat psfl x11 x11-style
-                          gpl2 gpl2+ lgpl2.1+))
+                #:select (asl2.0 bsd-3 bsd-style cc0 expat x11 x11-style
+                          gpl2 gpl2+ lgpl2.1+
+                          psfl public-domain))
   #:use-module ((guix licenses) #:select (zlib)
                                 #:renamer (symbol-prefix-proc 'license:))
   #:use-module (gnu packages)
@@ -36,6 +37,8 @@
   #:use-module (gnu packages elf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages sqlite)
+  #:use-module ((gnu packages zip) #:select (unzip))
+  #:use-module (gnu packages multiprecision)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
@@ -381,6 +384,80 @@ Python 3 support.")
   (package-with-python2 python-setuptools))
 
 
+(define-public python-pycrypto
+  (package
+    (name "python-pycrypto")
+    (version "2.6.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/p/"
+                          "pycrypto/pycrypto-" version ".tar.gz"))
+      (sha256
+       (base32
+        "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (inputs
+     `(("python" ,python)
+       ("gmp" ,gmp)))
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'build 'set-build-env
+        ;; pycrypto runs an autoconf configure script behind the scenes
+        (lambda _
+          (setenv "CONFIG_SHELL" (which "bash")))
+        %standard-phases)))
+    (home-page "http://www.pycrypto.org/")
+    (synopsis "Cryptographic modules for Python")
+    (description
+     "Pycrypto is a collection of both secure hash functions (such as SHA256
+and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal,
+etc.). The package is structured to make adding new modules easy.")
+    (license public-domain)))
+
+(define-public python-keyring
+  (package
+    (name "python-keyring")
+    (version "3.8")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/k/"
+                          "keyring/keyring-" version ".zip"))
+      (sha256
+       (base32
+        "1vxazfbcwggyfyramh55shkxs08skhpqrkm6lrrjnygnm8c1l2zg"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)
+       ("python-setuptools" ,python-setuptools)
+       ("python-mock" ,python-mock)))
+    (inputs
+     `(("python-pycrypto" ,python-pycrypto)))
+    (arguments
+     `(#:tests? #f                      ;TODO: tests require pytest
+       #:phases
+       (alist-replace
+        'unpack
+        (lambda _
+          (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+                                      "/bin/unzip"))
+                (source (assoc-ref %build-inputs "source")))
+            (and (zero? (system* unzip source))
+                 (chdir (string-append "keyring-" ,version)))))
+        %standard-phases)))
+    (home-page "http://bitbucket.org/kang/python-keyring-lib")
+    (synopsis "Store and access your passwords safely")
+    (description
+     "The Python keyring lib provides a easy way to access the system keyring
+service from python. It can be used in any application that needs safe
+password storage.")
+    ;; "MIT" and PSF dual license
+    (license x11)))
+
 (define-public python-six
   (package
     (name "python-six")
@@ -406,6 +483,32 @@ Six supports every Python version since 2.5. It is contained in only one
 Python file, so it can be easily copied into your project.")
     (license x11)))
 
+(define-public python-dateutil-2
+  (package
+    (name "python-dateutil")
+    (version "2.2")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/p/"
+                          name "/" name "-" version ".tar.gz"))
+      (sha256
+       (base32
+        "0s74ad6r789810s10dxgvaf48ni6adac2icrdad34zxygqq6bj7f"))))
+    (build-system python-build-system)
+    (inputs
+     `(("python-setuptools" ,python-setuptools)
+       ("python-six" ,python-six)))
+    (home-page "http://labix.org/python-dateutil")
+    (synopsis "Extensions to the standard datetime module")
+    (description
+     "The dateutil module provides powerful extensions to the standard
+datetime module, available in Python 2.3+.")
+    (license bsd-3)))
+
+(define-public python2-dateutil-2
+  (package-with-python2 python-dateutil-2))
+
 (define-public python-dateutil
   (package
     (name "python-dateutil")
@@ -413,8 +516,8 @@ Python file, so it can be easily copied into your project.")
     (source
      (origin
       (method url-fetch)
-      (uri (string-append "http://labix.org/download/python-dateutil/python-dateutil-"
-                          version ".tar.gz"))
+      (uri (string-append "http://labix.org/download/python-dateutil/"
+                          "python-dateutil-" version ".tar.gz"))
       (sha256
        (base32
         "0fqfglhy5khbvsipr3x7m6bcaqljh8xl5cw33vbfxy7qhmywm2n0"))))
@@ -422,8 +525,7 @@ Python file, so it can be easily copied into your project.")
     (inputs
      `(("python-setuptools" ,python-setuptools)))
     (home-page "http://labix.org/python-dateutil")
-    (synopsis
-     "Extensions to the standard datetime module, available in Python 2.3+")
+    (synopsis "Extensions to the standard datetime module")
     (description
      "The dateutil module provides powerful extensions to the standard
 datetime module, available in Python 2.3+.")
@@ -432,6 +534,67 @@ datetime module, available in Python 2.3+.")
 (define-public python2-dateutil
   (package-with-python2 python-dateutil))
 
+(define-public python-parsedatetime
+  (package
+    (name "python-parsedatetime")
+    (version "1.2")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/p/"
+                          "parsedatetime/parsedatetime-" version ".tar.gz"))
+      (sha256
+       (base32
+        "1zcj0pzxvpl4j2ma9awmpkfxldybi2kjaahjjpmgfbg5cxwcjsqv"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("python-setuptools" ,python-setuptools)))
+    (arguments `(#:tests? #f))          ;no test target
+    (home-page "http://github.com/bear/parsedatetime/")
+    (synopsis
+     "Parse human-readable date/time text")
+    (description
+     "Parse human-readable date/time text")
+    (license asl2.0)))
+
+(define-public python-tzlocal
+  (package
+    (name "python-tzlocal")
+    (version "1.1.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://pypi.python.org/packages/source/t/"
+                          "tzlocal/tzlocal-" version ".zip"))
+      (sha256
+       (base32
+        "1m3y918c3chf41fwg2bx4w42bqsjzn3dyvvcmwwy13c8gj6zssv9"))))
+    (build-system python-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)
+       ("python-setuptools" ,python-setuptools)))
+    (inputs `(("python-pytz" ,python-pytz)))
+    (arguments
+     `(#:phases
+       (alist-replace
+        'unpack
+        (lambda _
+          (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
+                                      "/bin/unzip"))
+                (source (assoc-ref %build-inputs "source")))
+            (and (zero? (system* unzip source))
+                 (chdir (string-append "tzlocal-" ,version)))))
+        %standard-phases)))
+    (home-page "https://github.com/regebro/tzlocal")
+    (synopsis
+     "tzinfo object for the local timezone")
+    (description
+     "Tzlocal returns a tzinfo object with the local timezone information.
+This module attempts to fix a glaring hole in pytz, that there is no way to
+get the local timezone information, unless you know the zoneinfo name, and
+under several distributions that's hard or impossible to figure out.")
+    (license cc0)))
+
 
 (define-public python2-pysqlite
   (package