packages feed

hodatime-1.0.0.0: hodatime.cabal

cabal-version:  2.4
name:           hodatime
version:        1.0.0.0
stability:      experimental
license:        BSD-3-Clause
license-file:   LICENSE
build-type:     Simple
author:         Jason Johnson
maintainer:     <jason.johnson.081@gmail.com>
homepage:       https://github.com/jason-johnson/hodatime
bug-reports:    https://github.com/jason-johnson/hodatime/issues
synopsis:       A fully featured date/time library based on Nodatime
description:
    HodaTime is a full-featured date and time library for Haskell, inspired by
    Noda Time (and, in turn, Joda Time) and Erik Naggum's /The Long, Painful
    History of Time/.
    .
    It draws a clear line between /physical time/ (instants, durations and
    intervals on a global time line) and /civil time/ (calendar dates, local
    times and the calendar-and-zone rules that connect the two), so the type you
    are holding always tells you exactly what you can and cannot do with it.
    .
    Highlights:
    .
    * Multiple calendars (Gregorian, ISO, Julian, Coptic, Persian, Islamic and
      Hebrew) with lossless conversion between them.
    .
    * Time zones sourced from the operating system (the IANA\/Olson database on
      Unix, the registry on Windows), with explicit resolution of skipped and
      ambiguous local times across DST transitions.
    .
    * A type-safe, composable pattern system for parsing and formatting that
      derives a parser and a formatter together from a single field definition.
    .
    * Locale-aware formatting driven by the host system's locale data.
category:       Data, Time
tested-with:    GHC == 9.4.8 || == 9.6.7 || == 9.8.4 || == 9.10.3
extra-doc-files:
                   README.md
                   CHANGELOG.md
extra-source-files:
                   platform/osx/Data/HodaTime/TimeZone/Platform.hs
                   platform/osx/Data/HodaTime/Instant/Platform.hs
                   platform/linux/Data/HodaTime/TimeZone/Platform.hs
                   platform/linux/Data/HodaTime/Instant/Platform.hs
                   platform/windows/Data/HodaTime/TimeZone/Platform.hs
                   platform/windows/Data/HodaTime/Instant/Platform.hsc
                   platform/osx/Data/HodaTime/Locale/Platform.hs
                   platform/linux/Data/HodaTime/Locale/Platform.hs
                   platform/windows/Data/HodaTime/Locale/Platform.hsc

source-repository head
    type:     git
    location: https://github.com/jason-johnson/hodatime

library
  default-language:
                   Haskell2010
  hs-source-dirs:  src
  if os(linux)
    hs-source-dirs: platform/linux
  if os(darwin)
    hs-source-dirs: platform/osx
  if os(windows)
    hs-source-dirs: platform/windows

  build-depends:
                   base >= 4.16 && < 4.21,
                   mtl < 2.4,
                   binary < 0.9,
                   bytestring < 0.13,
                   containers < 0.8,
                   deepseq >= 1.4 && < 1.6,
                   exceptions < 0.11,
                   fingertree >= 0.1.3 && < 0.2,
                   hashable >= 1.3 && < 1.6,
                   text >= 0.11.0.8 && < 2.2,
                   parsec < 3.2,
                   formatting < 7.3,
                   array < 0.6
  if os(windows)
    build-depends: Win32 < 2.15
    extra-libraries: kernel32
  if !os(windows)
    build-depends: unix < 2.9,
                   filepath < 1.6,
                   directory < 1.4

  ghc-options:     -Wall

  exposed-modules:
                   Data.HodaTime,
                   Data.HodaTime.Calendar.Coptic,
                   Data.HodaTime.Calendar.Gregorian,
                   Data.HodaTime.Calendar.Hebrew,
                   Data.HodaTime.Calendar.Islamic,
                   Data.HodaTime.Calendar.Iso,
                   Data.HodaTime.Calendar.Julian,
                   Data.HodaTime.Calendar.Persian,
                   Data.HodaTime.CalendarDate,
                   Data.HodaTime.CalendarDateTime,
                   Data.HodaTime.Duration,
                   Data.HodaTime.Instant,
                   Data.HodaTime.Interval,
                   Data.HodaTime.Offset,
                   Data.HodaTime.LocalTime,
                   Data.HodaTime.OffsetDateTime,
                   Data.HodaTime.TimeZone,
                   Data.HodaTime.ZonedDateTime,
                   Data.HodaTime.Locale,
                   Data.HodaTime.Pattern,
                   Data.HodaTime.Pattern.LocalTime,
                   Data.HodaTime.Pattern.CalendarDate,
                   Data.HodaTime.Pattern.CalendarDateTime,
                   Data.HodaTime.Pattern.Instant,
                   Data.HodaTime.Pattern.Offset,
                   Data.HodaTime.Pattern.OffsetDateTime,
                   Data.HodaTime.Pattern.Duration,
                   Data.HodaTime.Pattern.ZonedDateTime,
                   Data.HodaTime.Pattern.Locale,
                   Data.HodaTime.Exceptions
  other-modules:
                   Data.HodaTime.Constants,
                   Data.HodaTime.Internal,
                   Data.HodaTime.Internal.Lens,
                   Data.HodaTime.Duration.Internal,
                   Data.HodaTime.LocalTime.Internal,
                   Data.HodaTime.Calendar.Internal,
                   Data.HodaTime.Calendar.Gregorian.Internal,
                   Data.HodaTime.Calendar.Gregorian.CacheTable,
                   Data.HodaTime.Calendar.Persian.Astronomical,
                   Data.HodaTime.CalendarDateTime.Internal,
                   Data.HodaTime.Instant.Internal,
                   Data.HodaTime.Instant.Platform,
                   Data.HodaTime.Offset.Internal,
                   Data.HodaTime.TimeZone.Internal,
                   Data.HodaTime.TimeZone.Platform,
                   Data.HodaTime.ZonedDateTime.Internal,
                   Data.HodaTime.Locale.Internal,
                   Data.HodaTime.Locale.Platform,
                   Data.HodaTime.Pattern.Internal,
                   Data.HodaTime.Pattern.ZonedDateTime.Internal,
                   Data.HodaTime.Pattern.ApplyParse
                   Data.HodaTime.Pattern.ParseTypes
  if !os(windows)
    other-modules:
                   Data.HodaTime.TimeZone.Olson,
                   Data.HodaTime.TimeZone.ParseTZ,
                   Data.HodaTime.TimeZone.Unix,
                   Data.HodaTime.Instant.Unix,
                   Data.HodaTime.Locale.Posix

test-suite test
  default-language:
                   Haskell2010
  type:
                   exitcode-stdio-1.0
  hs-source-dirs:
                   tests
  main-is:
                   test.hs
  other-modules:
                   HodaTime.Util,
                   HodaTime.InstantTest,
                   HodaTime.LocalTimeTest,
                   HodaTime.DurationTest,
                   HodaTime.OffsetTest,
                   HodaTime.Calendar.GregorianTest,
                   HodaTime.Calendar.JulianTest,
                   HodaTime.Calendar.CopticTest,
                   HodaTime.Calendar.PersianTest,
                   HodaTime.Calendar.IslamicTest,
                   HodaTime.Calendar.HebrewTest,
                   HodaTime.CalendarDateTimeTest,
                   HodaTime.ZonedDateTimeTest,
                   HodaTime.PatternTest,
                   HodaTime.WithCalendarTest,
                   HodaTime.LocaleTest,
                   HodaTime.ClassInstanceTests
  build-depends:
                   base >= 4 && < 5,
                   tasty >= 0.11,
                   tasty-smallcheck,
                   tasty-quickcheck,
                   tasty-hunit,
                   QuickCheck,
                   time,
                   bytestring,
                   exceptions,
                   deepseq,
                   hashable,
                   hodatime

test-suite doctests
  default-language:
                   Haskell2010
  type:
                   exitcode-stdio-1.0
  hs-source-dirs:
                   doctest
  main-is:
                   doctests.hs
  build-depends:
                   base >= 4.16 && < 4.21,
                   doctest >= 0.16 && < 0.25,
                   mtl < 2.4,
                   binary < 0.9,
                   bytestring < 0.13,
                   containers < 0.8,
                   deepseq >= 1.4 && < 1.6,
                   exceptions < 0.11,
                   fingertree >= 0.1.3 && < 0.2,
                   hashable >= 1.3 && < 1.6,
                   text >= 0.11.0.8 && < 2.2,
                   parsec < 3.2,
                   formatting < 7.3,
                   array < 0.6
  if os(windows)
    build-depends: Win32 < 2.15
  if !os(windows)
    build-depends: unix < 2.9,
                   filepath < 1.6,
                   directory < 1.4

benchmark bench
  default-language:
                   Haskell2010
  type:
                   exitcode-stdio-1.0
  hs-source-dirs:
                   bench
  main-is:
                   bench.hs
  other-modules:
                   HodaTime.OffsetBench,
                   HodaTime.CalendarBench,
                   HodaTime.InstantBench
  build-depends:
                   base > 4,
                   criterion,
                   random,
                   hodatime
  ghc-options:
                   -Wall