summaryrefslogtreecommitdiff
path: root/gnu/packages/python-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python-xyz.scm')
-rw-r--r--gnu/packages/python-xyz.scm391
1 files changed, 328 insertions, 63 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 29f2d056f1..6451638afa 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -19,7 +19,7 @@
;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
-;;; Copyright © 2016, 2018, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2016, 2018, 2019, 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
@@ -67,7 +67,7 @@
;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019, 2020 Tanguy Le Carrour <tanguy@bioneland.org>
-;;; Copyright © 2019 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
+;;; Copyright © 2019, 2021 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
;;; Copyright © 2020 Riku Viitanen <riku.viitanen@protonmail.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 sirgazil <sirgazil@zoho.com>
@@ -219,6 +219,49 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
+(define-public python-argopt
+ (package
+ (name "python-argopt")
+ (version "0.7.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "argopt" version))
+ (sha256
+ (base32
+ "0ybs7kkp0cpl8zn1lvf7481xhssg1bbhh5la2cjzdm5yibashyxa"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-coverage" ,python-coverage)
+ ("python-nose" ,python-nose)
+ ("python-setuptools" ,python-setuptools) ; Won't build without this.
+ ("python-setuptools-scm" ,python-setuptools-scm)))
+ (propagated-inputs
+ `(("python-toml" ,python-toml)
+ ("python-flake8" ,python-flake8)))
+ (home-page "https://github.com/casperdcl/argopt")
+ (synopsis "Generate a command-line interface from a docstring")
+ (description "This package provides tools to define a command line interface
+from a docstring rather than the other way around.")
+ (license license:mpl2.0)))
+
+(define-public python-cachetools
+ (package
+ (name "python-cachetools")
+ (version "4.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "cachetools" version))
+ (sha256
+ (base32
+ "1zqc098gk6y614lxwqd9z2gm8lldgvrpid133pnlm4m048gfvdb1"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/tkem/cachetools/")
+ (synopsis "Extensible memoizing collections and decorators")
+ (description "This module provides various memoizing collections and
+decorators, including variants of the Python standard library's
+@code{lru_cache} function decorator.")
+ (license license:expat)))
+
(define-public python-colorful
(package
(name "python-colorful")
@@ -851,9 +894,6 @@ module and then similar looking characters are removed.")
and function call return values in a human-readable way.")
(license license:asl2.0)))
-(define-public python2-shapely
- (package-with-python2 python-shapely))
-
(define-public python-clyent
(package
(name "python-clyent")
@@ -2129,6 +2169,25 @@ The event dispatch is implicit, which means you can easily use @code{Eventlet}
from the Python interpreter, or as a small part of a larger application.")
(license license:expat)))
+(define-public python-sinfo
+ (package
+ (name "python-sinfo")
+ (version "0.3.4")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "sinfo" version))
+ (sha256
+ (base32
+ "0kdsp883mx0lfyykv0p12bvs203kdm3skb8bw5wf2pc7kb393sl1"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-stdlib-list" ,python-stdlib-list)))
+ (home-page "https://gitlab.com/joelostblom/session_info")
+ (synopsis "Output module version information loaded in a Python session")
+ (description "This package outputs version information for modules loaded
+in the current session, Python, and the OS.")
+ (license license:bsd-3)))
+
(define-public python-six
(package
(name "python-six")
@@ -4427,7 +4486,7 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
(define-public python-pydantic
(package
(name "python-pydantic")
- (version "1.6.1")
+ (version "1.8.2")
(source
(origin
(method git-fetch)
@@ -4436,24 +4495,39 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1380s9k77g6q15by9fkxndczjk89q6xpz09jdrqip535xws2z3j8"))))
+ (base32 "06162dss6mvi7wiy2lzxwvzajwxgy8b2fyym7qipaj7zibcqalq2"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
- ;; Reported upstream:
- ;; <https://github.com/samuelcolvin/pydantic/issues/1580>.
- ;; Disable the faulty test as the fix is unclear.
(add-before 'check 'disable-test
(lambda _
+ ;; Reported upstream:
+ ;; <https://github.com/samuelcolvin/pydantic/issues/1580>.
+ ;; Disable the faulty test as the fix is unclear.
(substitute* "tests/test_validators.py"
(("test_assert_raises_validation_error")
"_test_assert_raises_validation_error"))
- #t))
+
+ ;; These fail because of <https://bugs.python.org/issue40398>.
+ ;; Remove after Python has been upgraded to >= 3.9.
+ (substitute* "tests/test_generics.py"
+ (("assert replace_types\\(Callable, \\{T: int\\}\\) == Callable")
+ ""))
+ (substitute* "tests/test_schema.py"
+ (("test_unenforced_constraints_schema")
+ "_test_unenforced_constraints_schema"))
+
+ ;; Disable tests for the Hypothesis plugin because it is tricky
+ ;; to configure in the build container.
+ (delete-file "tests/test_hypothesis_plugin.py")))
(replace 'check
- (lambda _ (invoke "pytest" "-vv" "tests"))))))
+ (lambda _ (invoke "pytest" "-vv"))))))
(native-inputs
- `(("python-pytest" ,python-pytest)))
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-mock" ,python-pytest-mock)))
+ (propagated-inputs
+ `(("python-typing-extensions" ,python-typing-extensions)))
(home-page "https://github.com/samuelcolvin/pydantic")
(synopsis "Python data validation and settings management")
(description
@@ -4936,8 +5010,8 @@ capabilities.")
(define-public python2-numpy
(let ((numpy (package-with-python2
(strip-python2-variant python-numpy))))
- (package/inherit
- numpy
+ (package
+ (inherit numpy)
(version "1.16.5")
(source (origin
(method url-fetch)
@@ -5039,6 +5113,51 @@ objects.")
(define-public python2-colormath
(package-with-python2 python-colormath))
+(define-public python-sparse
+ (package
+ (name "python-sparse")
+ (version "0.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "sparse" version))
+ (sha256
+ (base32
+ "05lmzckv69cvxavhdr36k803bgr5dl04cppglid1l880xswc759c"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "python" "-m" "pytest" "-v")))))))
+ (propagated-inputs
+ `(("python-numba" ,python-numba)
+ ("python-numpy" ,python-numpy)
+ ("python-scipy" ,python-scipy)))
+ (native-inputs
+ `(("python-dask" ,python-dask)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-black" ,python-pytest-black)
+ ("python-pytest-cov" ,python-pytest-cov)))
+ (home-page "https://github.com/pydata/sparse/")
+ (synopsis "Library for multi-dimensional sparse arrays")
+ (description
+ "This package implements sparse arrays of arbitrary dimension on top of
+@code{numpy} and @code{scipy.sparse}. Sparse array is a matrix in which most
+of the elements are zero. @code{python-sparse} generalizes the
+@code{scipy.sparse.coo_matrix} and @code{scipy.sparse.dok_matrix} layouts, but
+extends beyond just rows and columns to an arbitrary number of dimensions.
+Additionally, this project maintains compatibility with the
+@code{numpy.ndarray} interface rather than the @code{numpy.matrix} interface
+used in @code{scipy.sparse}. These differences make this project useful in
+certain situations where @code{scipy.sparse} matrices are not well suited, but
+it should not be considered a full replacement. It lacks layouts that are not
+easily generalized like @dfn{compressed sparse row/column}(CSR/CSC) and
+depends on @code{scipy.sparse} for some computations.")
+ (license license:bsd-3)))
+
(define-public python-spectra
(package
(name "python-spectra")
@@ -5529,8 +5648,11 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
#t))
(add-before 'install 'install-jquery-ui
(lambda* (#:key outputs inputs #:allow-other-keys)
- (let ((dir (string-append (assoc-ref outputs "out")
- "/lib/python3.7/site-packages/matplotlib/backends/web_backend/")))
+ (let* ((python-version (python-version
+ (assoc-ref inputs "python")))
+ (dir (string-append (assoc-ref outputs "out")
+ "/lib/python" python-version "/site-packages"
+ "/matplotlib/backends/web_backend/")))
(mkdir-p dir)
(invoke "unzip"
(assoc-ref inputs "jquery-ui")
@@ -7506,9 +7628,6 @@ profile, launches a cluster and returns a view. On program exit it shuts the
cluster down and deletes the throwaway profile.")
(license license:expat)))
-(define-public python2-ipython-cluster-helper
- (package-with-python2 python-ipython-cluster-helper))
-
(define-public python-traitlets
(package
(name "python-traitlets")
@@ -8042,7 +8161,8 @@ features useful for text console applications.")
(define-public python2-urwid
(let ((base (package-with-python2
(strip-python2-variant python-urwid))))
- (package/inherit base
+ (package
+ (inherit base)
(version "2.1.0")
(source
(origin
@@ -9477,8 +9597,8 @@ markdown_py is also provided to convert Markdown files to HTML.")
;; Markdown 3.2 dropped support for Python 2.
(define-public python2-markdown
(let ((base (package-with-python2 (strip-python2-variant python-markdown))))
- (package/inherit
- base
+ (package
+ (inherit base)
(version "3.1.1")
(source (origin
(method url-fetch)
@@ -9596,6 +9716,26 @@ output.")
"Python library that makes exceptions handling and inspection easier.")
(license license:expat)))
+(define-public python-stdlib-list
+ (package
+ (name "python-stdlib-list")
+ (version "0.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "stdlib-list" version))
+ (sha256
+ (base32
+ "17vdn4q0sdlndc2fr9svapxx6366hnrhkn0fswp1xmr0jxqh7rd1"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; Tests require more dependencies.
+ (native-inputs
+ `(("python-sphinx" ,python-sphinx)))
+ (home-page "https://github.com/jackmaney/python-stdlib-list")
+ (synopsis "Python Standard Libraries")
+ (description "This package contains a list of Python Standard Libraries.")
+ (license license:expat)))
+
(define-public python-straight-plugin
(package
(name "python-straight-plugin")
@@ -9646,8 +9786,8 @@ from an XML-based format.")
;; Fonttools 4.x dropped support for Python 2, so stick with 3.x here.
(define-public python2-fonttools
(let ((base (package-with-python2 (strip-python2-variant python-fonttools))))
- (package/inherit
- base
+ (package
+ (inherit base)
(version "3.44.0")
(source (origin
(method url-fetch)
@@ -10269,6 +10409,30 @@ implementations of ASN.1-based codecs and protocols.")
module to older versions of Python.")
(license license:psfl)))
+(define-public python-asn1tools
+ (package
+ (name "python-asn1tools")
+ (version "0.158.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "asn1tools" version))
+ (sha256
+ (base32 "1k88a1azmyvp2ab6qcf2i40dig5abhyn7cmlyhmwwh8kr3syvma0"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-bitstruct" ,python-bitstruct)
+ ("python-diskcache" ,python-diskcache)
+ ("python-prompt-toolkit" ,python-prompt-toolkit)
+ ("python-pyparsing" ,python-pyparsing)))
+ (home-page "https://github.com/eerimoq/asn1tools")
+ (synopsis "ASN.1 parsing, encoding and decoding")
+ (description "This package provides ASN.1 parsing, encoding and decoding
+for Python, including constraints checking. It supports several
+codecs (e.g. BER, PER, UPER, XER) as well as limited C source code generating
+for OER and UPER.")
+ (license license:expat)))
+
(define-public python2-ipaddr
(package
(name "python2-ipaddr")
@@ -10686,14 +10850,13 @@ JSON Reference and JSON Pointer.")
(define-public python-fastjsonschema
(package
(name "python-fastjsonschema")
- (version "2.15.0")
+ (version "2.15.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "fastjsonschema" version))
(sha256
- (base32
- "0xknp399gpdjf08lrq2yvv66s7nsc51fgbm6vph7vyyg1ckbmv71"))))
+ (base32 "1ln2j60jzyn6p8i8ljygfgrji58hc23452g7nllkcjdk4p93c7v7"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; Fail with a strange backtrace ending in importlib.
@@ -11140,29 +11303,8 @@ convert an @code{.ipynb} notebook file into various static formats including:
(description
"The Jupyter HTML notebook is a web-based notebook environment for
interactive computing.")
- (properties `((python2-variant . ,(delay python2-notebook))))
(license license:bsd-3)))
-(define-public python2-notebook
- (let ((base (package-with-python2
- (strip-python2-variant python-notebook))))
- (package/inherit base
- (native-inputs
- `(("python2-mock" ,python2-mock)
- ,@(package-native-inputs base)))
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-before 'check 'disable-test-case
- ;; The test requires network access to localhost. Curiously it
- ;; fails with Python 2 only. Simply make the test-case return
- ;; immediately.
- (lambda _
- (substitute*
- "notebook/services/nbconvert/tests/test_nbconvert_api.py"
- (("formats = self.nbconvert_api") "return #")))))))))))
-
(define-public python-widgetsnbextension
(package
(name "python-widgetsnbextension")
@@ -12768,14 +12910,13 @@ designed to work across multiple versions of Python.")
(define-public python-cookiecutter
(package
(name "python-cookiecutter")
- (version "1.7.2")
+ (version "1.7.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cookiecutter" version))
(sha256
- (base32
- "1b2xa5dypk1vf8aq599fd8zw4y0pwvq3hgl7ia8aiv8gg3ab5dpg"))))
+ (base32 "0mx49whhwcxmvcak27zr7p7ndzkn3w7psfd7fzh3n91fi1r4v6kb"))))
(build-system python-build-system)
(native-inputs
`(("python-freezegun" ,python-freezegun)
@@ -15421,6 +15562,11 @@ extracting firmware images")
'(;; The tests require some extra resources to be downloaded.
;; TODO Try packaging these resources.
#:tests? #f))
+ (propagated-inputs
+ `(("python-click" ,python-click)
+ ("python-joblib" ,python-joblib)
+ ("python-regex" ,python-regex)
+ ("python-tqdm" ,python-tqdm)))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://nltk.org/")
@@ -15442,7 +15588,8 @@ reasoning, wrappers for natural language processing libraries.")
(method url-fetch)
(uri (pypi-uri "nltk" version ".zip"))
(sha256
- (base32 "153x2clrnigs74jdgnn3qmljdjj4gprmvpdvh49i18ls4m8mbm5y"))))))
+ (base32 "153x2clrnigs74jdgnn3qmljdjj4gprmvpdvh49i18ls4m8mbm5y"))))
+ (propagated-inputs `(("python-six" ,python-six)))))
(define-public python2-nltk
(package-with-python2 python-nltk))
@@ -16410,6 +16557,30 @@ converting text with ANSI color codes to HTML or LaTeX.")
(define-public python2-ansi2html
(package-with-python2 python-ansi2html))
+(define-public python-easy-ansi
+ (package
+ (name "python-easy-ansi")
+ (version "0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/joeysbytes/easy-ansi")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0albh55ynzs98qy9pln4qaxw5qhhh3lk09jy9bx19gycrp1c3lc3"))))
+ (build-system python-build-system)
+ (home-page "https://gitlab.com/joeysbytes/easy-ansi")
+ (synopsis "Terminal framework API")
+ (description
+ "Easy ANSI is a terminal framework API to give you an easy way to use
+colors, cursor control movements, and line/box drawing. It is not meant as a
+replacement to more full-featured frameworks (such as curses or urwid), but as
+a tool to quickly create nice-looking screens in your terminal window. You
+can even create animations with the cursor controls.")
+ (license license:expat)))
+
(define-public python-ddt
(package
(name "python-ddt")
@@ -20867,28 +21038,41 @@ N-dimensional arrays for Python.")
(define-public python-anndata
(package
(name "python-anndata")
- (version "0.7.1")
+ (version "0.7.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "anndata" version))
(sha256
(base32
- "0rnfbpr55j1a1bi2kd4mz444741hrn74kz90h5rnjr59jmpfnh09"))))
+ "1ch8yp0xmag6z0kl01pljm35lbbwax7lrimfhiclpkd4m6xngk53"))))
(build-system python-build-system)
(arguments
- `(#:phases
+ `(#:tests? #f ; The tarball from PyPi doesn't include tests.
+ #:phases
(modify-phases %standard-phases
- (add-after 'unpack 'delete-inconvenient-tests
- (lambda _
- ;; This test depends on python-scikit-learn.
- (delete-file "anndata/tests/test_inplace_subset.py")
- #t))
(delete 'check)
- (add-after 'install 'check
+ (add-before 'build 'relax-dependency-requirements
+ (lambda _
+ ;; We need to upgrade python-pandas to avoid
+ ;; https://github.com/pandas-dev/pandas/issues/35446
+ (substitute* "pyproject.toml"
+ (("pandas>=1.1.1") "pandas>=1.0.5"))))
+ (replace 'build
+ (lambda _
+ ;; ZIP does not support timestamps before 1980.
+ (setenv "SOURCE_DATE_EPOCH" "315532800")
+ (invoke "flit" "build")))
+ (replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
- (invoke "pytest" "-vv"))))))
+ (let ((out (assoc-ref outputs "out")))
+ (for-each (lambda (wheel)
+ (format #true wheel)
+ (invoke "python" "-m" "pip" "install"
+ wheel (string-append "--prefix=" out)))
+ (find-files "dist" "\\.whl$")))
+ #t)))))
(propagated-inputs
`(("python-h5py" ,python-h5py)
("python-importlib-metadata" ,python-importlib-metadata)
@@ -20901,6 +21085,8 @@ N-dimensional arrays for Python.")
(native-inputs
`(("python-joblib" ,python-joblib)
("python-pytest" ,python-pytest)
+ ("python-toml" ,python-toml)
+ ("python-flit" ,python-flit)
("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://github.com/theislab/anndata")
(synopsis "Annotated data for data analysis pipelines")
@@ -24812,6 +24998,41 @@ module patches @code{asyncio} to allow nested use of @code{asyncio.run} and
@code{loop.run_until_complete}.")
(license license:bsd-3)))
+(define-public python-simpervisor
+ (package
+ (name "python-simpervisor")
+ (version "0.4")
+ (source
+ (origin
+ ;; Tests not included in release.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/yuvipanda/simpervisor")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1brsisx7saf4ic0dih1n5y7rbdbwn1ywv9pl32bch3061r46prvv"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; Test suite can't find aiohttp.
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "--maxfail" "3" "--verbose"))
+ #t)))))
+ (native-inputs
+ `(("python-aiohttp" ,python-aiohttp)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-asyncio" ,python-pytest-asyncio)))
+ (home-page "https://github.com/yuvipanda/simpervisor")
+ (synopsis "Simple async process supervisor")
+ (description
+ "This package provides a simple async process supervisor in Python.")
+ (license license:bsd-3)))
+
(define-public python-parallel
(package
(name "python-parallel")
@@ -25071,6 +25292,50 @@ query Watchman to discover file changes.")
environment.")
(license license:expat)))
+(define-public python-logutils
+ (package
+ (name "python-logutils")
+ (version "0.3.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "logutils" version))
+ (sha256
+ (base32
+ "10lsi5wv5ysnvf9ya4ncbix6mmipnv5067sf2cglc2f2sljql1dw"))))
+ (build-system python-build-system)
+ (home-page "https://bitbucket.org/vinay.sajip/logutils/")
+ (synopsis "Logging utilities")
+ (description "This package provides a set of handlers for the Python
+standard library logging package. Some of these handlers are out-of-scope
+for the standard library, and so they are packaged here. Others are updated
+versions which have appeared in recent Python releases, but are usable with
+older versions of Python and so are packaged here.")
+ (license license:bsd-3)))
+
+(define-public python-helper
+ (package
+ (name "python-helper")
+ (version "2.5.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "helper" version))
+ (sha256
+ (base32
+ "1d2j64wgbggzv5rhvil10zndp2w78wa5np5w0psj122ws9qr9wsa"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-mock" ,python-mock)))
+ (propagated-inputs
+ `(("python-logutils" ,python-logutils)
+ ("python-pyyaml" ,python-pyyaml)))
+ (home-page "https://github.com/gmr/helper")
+ (synopsis "Library for writing configurable applications and daemons")
+ (description
+ "This package provides procedures for quickly writing configurable
+applications and daemons.")
+ (license license:bsd-3)))
+
(define-public python-qtsass
(package
(name "python-qtsass")