gnu: python-pytzdata: Update to 2019.3.
[jackhill/guix/guix.git] / gnu / packages / time.scm
CommitLineData
233e7676
LC
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
33dc54b0
RW
3;;; Copyright © 2013, 2017 Ludovic Courtès <ludo@gnu.org>
4;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
d1e75921 5;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
33dc54b0
RW
6;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
7;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com>
8;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
9;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
10;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
463e9835 11;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
33fdde8d 12;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
5d20e1ec 13;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
47956fa0 14;;; Copyright © 2017 ng0 <ng0@n0.is>
33dc54b0 15;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
f8460d26 16;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
3ef29c00 17;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
0d5b7ea1 18;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
b147f59f 19;;;
233e7676 20;;; This file is part of GNU Guix.
b147f59f 21;;;
233e7676 22;;; GNU Guix is free software; you can redistribute it and/or modify it
b147f59f
NK
23;;; under the terms of the GNU General Public License as published by
24;;; the Free Software Foundation; either version 3 of the License, or (at
25;;; your option) any later version.
26;;;
233e7676 27;;; GNU Guix is distributed in the hope that it will be useful, but
b147f59f
NK
28;;; WITHOUT ANY WARRANTY; without even the implied warranty of
29;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30;;; GNU General Public License for more details.
31;;;
32;;; You should have received a copy of the GNU General Public License
233e7676 33;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
b147f59f 34
1ffa7090 35(define-module (gnu packages time)
4a44e743 36 #:use-module (guix licenses)
b147f59f
NK
37 #:use-module (guix packages)
38 #:use-module (guix download)
3ef29c00 39 #:use-module (guix git-download)
5d20e1ec
BW
40 #:use-module (guix build-system gnu)
41 #:use-module (guix build-system python)
ac257f12 42 #:use-module (gnu packages check)
33dc54b0 43 #:use-module (gnu packages compression)
3ef29c00 44 #:use-module (gnu packages perl)
44d10b1f
RW
45 #:use-module (gnu packages python)
46 #:use-module (gnu packages python-xyz))
b147f59f
NK
47
48(define-public time
49 (package
50 (name "time")
64f925cb 51 (version "1.9")
b147f59f
NK
52 (source
53 (origin
54 (method url-fetch)
55 (uri (string-append "mirror://gnu/time/time-"
56 version ".tar.gz"))
57 (sha256
58 (base32
64f925cb 59 "07jj7cz6lc13iqrpgn81ivqh8rkm73p4rnivwgrrshk23v4g1b7v"))))
b147f59f 60 (build-system gnu-build-system)
6fd52309 61 (home-page "https://www.gnu.org/software/time/")
f50d2669 62 (synopsis "Run a command, then display its resource usage")
b147f59f 63 (description
a22dc0c4
LC
64 "Time is a command that displays information about the resources that a
65program uses. The display output of the program can be customized or saved
66to a file.")
c8b38f8e 67 (license gpl3+)))
5d20e1ec 68
0d5b7ea1
PL
69(define-public python-pytimeparse
70 (package
71 (name "python-pytimeparse")
72 (version "1.1.8")
73 (source
74 (origin
75 (method url-fetch)
76 (uri (pypi-uri "pytimeparse" version))
77 (sha256
78 (base32
79 "02kaambsgpjx3zi42j6l11rwms2p35b9hsk4f3kdf979gd3kcqg8"))))
80 (native-inputs
81 `(("python-nose" ,python-nose)))
82 (build-system python-build-system)
83 (home-page "https://github.com/wroberts/pytimeparse")
84 (synopsis "Time expression parser")
85 (description "This small Python module parses various kinds of time
86expressions.")
87 (license expat)))
88
5d20e1ec
BW
89(define-public python-pytzdata
90 (package
91 (name "python-pytzdata")
463e9835 92 (version "2019.3")
5d20e1ec
BW
93 (source
94 (origin
95 (method url-fetch)
96 (uri (pypi-uri "pytzdata" version))
97 (sha256
98 (base32
463e9835 99 "0ppfc6kz4p41mxyqxq1g1zp6gvns99g6b344qj6ih0x9vxy6zh7s"))))
5d20e1ec 100 (build-system python-build-system)
463e9835
MB
101 ;; XXX: The PyPI distribution contains no tests, and the upstream
102 ;; repository lacks a setup.py! How to build from git?
103 (arguments '(#:tests? #f))
104 (propagated-inputs
105 `(("python-cleo" ,python-cleo)))
5d20e1ec
BW
106 (home-page "https://github.com/sdispater/pytzdata")
107 (synopsis "Timezone database for Python")
108 (description
109 "This library provides a timezone database for Python.")
110 (license expat)))
111
112(define-public python2-tzdata
113 (package-with-python2 python-pytzdata))
89c3eaaa 114
33dc54b0
RW
115(define-public python-pytz
116 (package
117 (name "python-pytz")
71c08ee6 118 (version "2019.1")
33dc54b0
RW
119 (source
120 (origin
121 (method url-fetch)
4c97f959 122 (uri (pypi-uri "pytz" version))
33dc54b0
RW
123 (sha256
124 (base32
71c08ee6 125 "0hg1r2c41gnmljdsdmdgy6kb1zkfmxsf49imd96g8znp4cyxsiyp"))))
33dc54b0 126 (build-system python-build-system)
33dc54b0
RW
127 (home-page "http://pythonhosted.org/pytz")
128 (synopsis "Python timezone library")
129 (description "This library brings the Olson tz database into Python. It
130allows accurate and cross platform timezone calculations using Python 2.4 or
131higher. It also solves the issue of ambiguous times at the end of daylight
132saving time. Almost all of the Olson timezones are supported.")
133 (license expat)))
134
135(define-public python2-pytz
136 (package-with-python2 python-pytz))
137
89c3eaaa
BW
138(define-public python-pendulum
139 (package
140 (name "python-pendulum")
141 (version "1.2.4")
142 (source
143 (origin
144 (method url-fetch)
145 (uri (pypi-uri "pendulum" version))
146 (sha256
147 (base32
148 "1fj36yxi2f4lzchzd8ny1qjl67dbypnk0gn8qwad2w78579m8m8z"))))
149 (build-system python-build-system)
150 (native-inputs
151 `(("python-pytest" ,python-pytest)
152 ("python-nose" ,python-nose)))
153 (propagated-inputs
154 `(("python-dateutil" ,python-dateutil)
155 ("python-pytzdata" ,python-pytzdata)
156 ("python-tzlocal" ,python-tzlocal)))
157 (home-page "https://github.com/sdispater/pendulum")
158 (synopsis "Alternate API for Python datetimes")
159 (description "Pendulum is a drop-in replacement for the standard
160@{datetime} class, providing an alternative API. As it inherits from the
161standard @code{datetime} all @code{datetime} instances can be replaced by
162Pendulum instances.")
163 (license expat)))
164
165(define-public python2-pendulum
166 (package-with-python2 python-pendulum))
33dc54b0
RW
167
168(define-public python-dateutil
169 (package
170 (name "python-dateutil")
de92ab21 171 (version "2.8.0")
33dc54b0
RW
172 (source
173 (origin
174 (method url-fetch)
175 (uri (pypi-uri "python-dateutil" version))
176 (sha256
177 (base32
de92ab21 178 "17nsfhy4xdz1khrfxa61vd7pmvd5z0wa3zb6v4gb4kfnykv0b668"))))
33dc54b0 179 (build-system python-build-system)
de92ab21
MB
180 (arguments
181 `(#:phases (modify-phases %standard-phases
182 (replace 'check
183 (lambda _
184 ;; Delete tests that depend on "freezegun" to avoid a
185 ;; circular dependency.
186 (delete-file "dateutil/test/test_utils.py")
187 (delete-file "dateutil/test/test_rrule.py")
188
189 ;; XXX: Fails to get timezone from /etc/localtime.
190 (delete-file "dateutil/test/test_tz.py")
191
192 (invoke "pytest" "-vv"))))))
e30fc546 193 (native-inputs
de92ab21
MB
194 `(("python-pytest" ,python-pytest)
195 ("python-setuptools-scm" ,python-setuptools-scm)))
33dc54b0
RW
196 (propagated-inputs
197 `(("python-six" ,python-six)))
198 (home-page "https://dateutil.readthedocs.io/en/stable/")
199 (synopsis "Extensions to the standard datetime module")
200 (description
201 "The dateutil module provides powerful extensions to the standard
202datetime module, available in Python 2.3+.")
e30fc546
MB
203 ;; The license was changed from the three-clause BSD license to a dual
204 ;; Apache 2.0/BSD-3 variant at 2017-12-01. Some code is only available as
205 ;; BSD-3 still; but all new code is dual licensed (the user can choose).
206 (license (list bsd-3 asl2.0))))
33dc54b0
RW
207
208(define-public python2-dateutil
209 (package-with-python2 python-dateutil))
210
211(define-public python-parsedatetime
212 (package
213 (name "python-parsedatetime")
214 (version "2.4")
215 (source
216 (origin
217 (method url-fetch)
218 (uri (pypi-uri "parsedatetime" version))
219 (sha256
220 (base32
221 "0jxqkjks7z9dn222cqgvskp4wr6d92aglinxq7pd2w4mzdc7r09x"))))
222 (build-system python-build-system)
223 (native-inputs
224 `(("python-nose" ,python-nose)
225 ("python-pyicu" ,python-pyicu)
226 ("python-pytest" ,python-pytest)
227 ("python-pytest-runner" ,python-pytest-runner)))
228 (propagated-inputs
229 `(("python-future" ,python-future)))
230 (home-page "https://github.com/bear/parsedatetime/")
231 (synopsis "Parse human-readable date/time text")
232 (description
233 "Parse human-readable date/time text.")
234 (license asl2.0)))
235
236(define-public python2-parsedatetime
237 (package-with-python2 python-parsedatetime))
238
239(define-public python-tzlocal
240 (package
241 (name "python-tzlocal")
d1e75921 242 (version "1.5.1")
33dc54b0
RW
243 (source
244 (origin
245 (method url-fetch)
246 (uri (pypi-uri "tzlocal" version))
247 (sha256
248 (base32
d1e75921 249 "0kiciwiqx0bv0fbc913idxibc4ygg4cb7f8rcpd9ij2shi4bigjf"))))
33dc54b0 250 (build-system python-build-system)
d1e75921
EF
251 (arguments
252 `(#:phases
253 (modify-phases %standard-phases
254 (add-before 'check 'fix-symlink-test
255 ;; see: https://github.com/regebro/tzlocal/issues/53
256 (lambda _
257 (delete-file "tzlocal/test_data/symlink_localtime/etc/localtime")
258 (symlink "../usr/share/zoneinfo/Africa/Harare"
259 "tzlocal/test_data/symlink_localtime/etc/localtime")
260 #t)))))
33dc54b0
RW
261 (propagated-inputs
262 `(("python-pytz" ,python-pytz)))
d1e75921
EF
263 (native-inputs
264 `(("python-mock" ,python-mock)))
33dc54b0
RW
265 (home-page "https://github.com/regebro/tzlocal")
266 (synopsis "Local timezone information for Python")
267 (description
268 "Tzlocal returns a tzinfo object with the local timezone information.
269This module attempts to fix a glaring hole in pytz, that there is no way to
270get the local timezone information, unless you know the zoneinfo name, and
271under several distributions that's hard or impossible to figure out.")
d1e75921 272 (license expat)))
33dc54b0
RW
273
274(define-public python-isodate
275 (package
276 (name "python-isodate")
e4be1faa 277 (version "0.6.0")
33dc54b0
RW
278 (source
279 (origin
280 (method url-fetch)
281 (uri (pypi-uri "isodate" version))
282 (sha256
283 (base32
e4be1faa 284 "1n7jkz68kk5pwni540pr5zdh99bf6ywydk1p5pdrqisrawylldif"))))
33dc54b0 285 (build-system python-build-system)
e4be1faa
EF
286 (native-inputs
287 `(("python-six" ,python-six)))
288 (home-page "https://github.com/gweis/isodate/")
33dc54b0
RW
289 (synopsis "Python date parser and formatter")
290 (description
291 "Python-isodate is a python module for parsing and formatting
292ISO 8601 dates, time and duration.")
293 (license bsd-3)))
294
295(define-public python2-isodate
296 (package-with-python2 python-isodate))
297
298(define-public python-iso8601
299 (package
300 (name "python-iso8601")
56f3b85b 301 (version "0.1.12")
33dc54b0
RW
302 (source
303 (origin
304 (method url-fetch)
305 (uri (pypi-uri "iso8601" version))
306 (sha256
307 (base32
56f3b85b 308 "10nyvvnrhw2w3p09v1ica4lgj6f4g9j3kkfx17qmraiq3w7b5i29"))))
33dc54b0
RW
309 (build-system python-build-system)
310 (native-inputs
311 `(("python-pytest" ,python-pytest)))
312 (home-page "https://bitbucket.org/micktwomey/pyiso8601")
313 (synopsis "Module to parse ISO 8601 dates")
314 (description
315 "This module parses the most common forms of ISO 8601 date strings (e.g.
316@code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.")
317 (license expat)))
318
319(define-public python2-iso8601
320 (package-with-python2 python-iso8601))
321
322(define-public python-monotonic
323 (package
324 (name "python-monotonic")
33fdde8d 325 (version "1.5")
33dc54b0
RW
326 (source
327 (origin
328 (method url-fetch)
db3e631d 329 (uri (pypi-uri "monotonic" version))
33dc54b0
RW
330 (sha256
331 (base32
33fdde8d 332 "1c6z46yb600klbfhqadyl7vq0jdjdxkm72k43ra3iw3d0xakv593"))))
33dc54b0 333 (build-system python-build-system)
33fdde8d 334 (arguments '(#:tests? #f)) ; no tests
33dc54b0
RW
335 (home-page "https://github.com/atdt/monotonic")
336 (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3")
337 (description
338 "This module provides a @code{monotonic()} function which returns the
339value (in fractional seconds) of a clock which never goes backwards.")
340 (license asl2.0)))
341
342(define-public python2-monotonic
343 (package-with-python2 python-monotonic))
344
345(define-public python-pyrfc3339
346 (package
347 (name "python-pyrfc3339")
0ce92d74 348 (version "1.1")
33dc54b0
RW
349 (source
350 (origin
351 (method url-fetch)
352 (uri (pypi-uri "pyRFC3339" version))
353 (sha256
354 (base32
0ce92d74 355 "06jv7ar7lpvvk0dixzwdr3wgm0g1lipxs429s2z7knwwa7hwpf41"))))
33dc54b0
RW
356 (build-system python-build-system)
357 (propagated-inputs
358 `(("python-pytz" ,python-pytz)))
359 (native-inputs
360 `(("python-nose" ,python-nose)))
361 (home-page "https://github.com/kurtraschke/pyRFC3339")
362 (synopsis "Python timestamp library")
363 (description "Python library for generating and parsing RFC 3339-compliant
364timestamps.")
365 (license expat)))
366
367(define-public python2-pyrfc3339
368 (package-with-python2 python-pyrfc3339))
369
370(define-public python-arrow
371 (package
372 (name "python-arrow")
373 (version "0.10.0")
374 (source (origin
375 (method url-fetch)
376 (uri (pypi-uri "arrow" version))
377 (sha256
378 (base32
379 "08n7q2l69hlainds1byd4lxhwrq7zsw7s640zkqc3bs5jkq0cnc0"))))
380 (build-system python-build-system)
381 (native-inputs
382 `(;; For testing
383 ("python-chai" ,python-chai)
384 ("python-simplejson" ,python-simplejson)))
385 (propagated-inputs
386 `(("python-dateutil" ,python-dateutil)))
387 (home-page "https://github.com/crsmithdev/arrow/")
388 (synopsis "Dates and times for Python")
389 (description
390 "Arrow is a Python library to creating, manipulating, formatting and
391converting dates, times, and timestamps. It implements and updates the
392datetime type.")
393 (license asl2.0)))
394
395(define-public python2-arrow
396 (package-with-python2 python-arrow))
397
398(define-public python-aniso8601
399 (package
400 (name "python-aniso8601")
401 (version "1.3.0")
402 (source
403 (origin
404 (method url-fetch)
405 (uri (pypi-uri "aniso8601" version))
406 (sha256
407 (base32
408 "1waj54iv3n3lw1fapbz8a93yjgrybgpc86wif5baxdh1arpj9df3"))))
409 (build-system python-build-system)
410 (propagated-inputs
411 `(("python-dateutil" ,python-dateutil)))
412 (home-page "https://bitbucket.org/nielsenb/aniso8601")
413 (synopsis "Python library for parsing ISO 8601 strings")
414 (description
415 "This package contains a library for parsing ISO 8601 datetime strings.")
416 (license bsd-3)))
417
418(define-public python2-aniso8601
419 (package-with-python2 python-aniso8601))
3ef29c00
KM
420
421(define-public datefudge
422 (package
423 (name "datefudge")
69dc3e52 424 (version "1.23")
3ef29c00
KM
425 (source (origin
426 (method git-fetch)
427 (uri (git-reference
428 (url "https://salsa.debian.org/debian/datefudge.git")
429 (commit (string-append "debian/" version))))
430 (file-name (git-file-name name version))
431 (sha256
432 (base32
69dc3e52 433 "0r9g8v9xnv60hq3j20wqy34kyig3sc2pisjxl4irn7jjx85f1spv"))))
3ef29c00
KM
434 (build-system gnu-build-system)
435 (arguments
436 `(#:test-target "test"
437 #:make-flags (list "CC=gcc"
438 (string-append "prefix=" (assoc-ref %outputs "out")))
439 #:phases
440 (modify-phases %standard-phases
441 (add-after 'unpack 'patch-makefile
442 (lambda _
443 (substitute* "Makefile"
444 ((" -o root -g root") "")
445 (("VERSION := \\$\\(shell dpkg-parsechangelog .*")
446 (string-append "VERSION = " ,version)))
447 #t))
448 (delete 'configure))))
449 (native-inputs
450 `(("perl" ,perl)))
451 (home-page "https://salsa.debian.org/debian/datefudge")
452 (synopsis "Pretend the system date is different")
453 (description
454 "Utility that fakes the system time by pre-loading a small library that
455modifies the @code{time}, @code{gettimeofday} and @code{clock_gettime} system
456calls.")
457 (license gpl2)))