+
+(define-public python-smartypants
+ (package
+ (name "python-smartypants")
+ (version "2.0.1")
+ (source
+ (origin
+ ;; There's no source tarball for 2.0.1 on PyPI.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/leohemsted/smartypants.py")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00p1gnb9pzb3svdq3c5b9b332gsp50wrqqa39gj00m133zadanjp"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ ;; Its `setup.py test` doesn't report failure with exit status, so
+ ;; we use `nose` instead.
+ (lambda _
+ (invoke "nosetests" "-v" "--exclude=^load_tests$"))))))
+ (native-inputs
+ ;; For tests.
+ `(("python-docutils" ,python-docutils)
+ ("python-nose" ,python-nose)
+ ("python-pygments" ,python-pygments)))
+ (home-page "https://github.com/leohemsted/smartypants.py")
+ (synopsis "Translate punctuation characters into smart quotes")
+ (description
+ "@command{smartpants} can perform the following transformations:
+@enumerate
+@item Straight quotes ( \" and ' ) into \"curly\" quote HTML entities
+@item Backticks-style quotes (``like this'') into \"curly\" quote HTML
+entities
+@item Dashes (-- and ---) into en- and em-dash entities
+@item Three consecutive dots (... or . . .) into an ellipsis entity
+@end enumerate")
+ (license license:bsd-3)))
+
+(define-public python-typogrify
+ (package
+ (name "python-typogrify")
+ (version "2.0.7")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "typogrify" version))
+ (sha256
+ (base32
+ "0f6b2gnnxjbx1fbmkcscc6qjr4hi78kwm1wx4b766ha3va66dr4b"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "nosetests" "-v"))))))
+ (propagated-inputs
+ `(("python-smartypants" ,python-smartypants)))
+ (native-inputs
+ ;; For tests.
+ `(("python-nose" ,python-nose)))
+ (home-page "https://github.com/mintchaos/typogrify")
+ (synopsis "Filters to transform text into typographically-improved HTML")
+ (description
+ "@code{typogrify} provides a set of custom filters that automatically
+apply various transformations to plain text in order to yield
+typographically-improved HTML. While often used in conjunction with Jinja and
+Django template systems, the filters can be used in any environment.")
+ (license license:bsd-3)))
+
+(define-public python-ld
+ (package
+ (name "python-ld")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ld" version))
+ (sha256
+ (base32
+ "1k4ydp5rgkv4985v459kcl06i1igjm1ywvh2vkbi9ck1zyyri1z5"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-six" ,python-six)))
+ (home-page "https://github.com/nir0s/ld")
+ (synopsis "OS platform information API")
+ (description
+ "The ld package provides information about the GNU/Linux distribution it
+runs on, such as a reliable machine-readable ID, or version information.")
+ (license license:asl2.0)))
+
+(define-public python-quicktions
+ (package
+ (name "python-quicktions")
+ (version "1.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "quicktions" version))
+ (sha256
+ (base32
+ "1px21a6x527i1bsr2p6bbf3jziqpvd1vjkvvzh13gsy4iip0yvzn"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; This file is generated by Cython.
+ (delete-file "src/quicktions.c") #t))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'cythonize-sources
+ (lambda _
+ (with-directory-excursion "src"
+ (invoke "cython" "quicktions.pyx"))))
+ (replace 'check
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+ (when tests?
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest"))
+ #t)))))
+ (native-inputs
+ `(("python-cython" ,python-cython)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/scoder/quicktions")
+ (synopsis "Fast fractions data type for rational numbers")
+ (description
+ "This package provides fast fractions data type for rational numbers. It
+is the cythonized version of @code{fractions.Fraction}.")
+ (license license:psfl)))
+
+(define-public python-pathvalidate
+ (package
+ (name "python-pathvalidate")
+ (version "2.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pathvalidate" version))
+ (sha256
+ (base32 "0s14ycjgb44lxr2wg8lrq3b7kybmmrbf7yqz47xrqgn2gr6dk6rw"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:tests? #f))
+ ;; Tests disabled because of circular dependencies.
+ ;; pathvalidate tests depend on pytest-md-report, which
+ ;; depends on pathvalidate.
+ (native-inputs
+ `(("python-allpairspy" ,python-allpairspy)
+ ("python-click" ,python-click)
+ ("python-faker" ,python-faker)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/thombashi/pathvalidate")
+ (synopsis "Sanitize strings representing paths")
+ (description
+ "@code{pathvalidate} is a Python library to sanitize/validate strings
+representing paths or filenames.")
+ (license license:expat)))