summaryrefslogtreecommitdiffstats
path: root/PKG-INFO
blob: f609f9b66d18ef8e45d37fe097738b7fac9a6695 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
Metadata-Version: 1.1
Name: isodate
Version: 0.5.4
Summary: An ISO 8601 date/time/duration parser and formatter
Home-page: http://cheeseshop.python.org/pypi/isodate
Author: Gerhard Weis
Author-email: gerhard.weis@proclos.com
License: BSD
Description: 
        ISO 8601 date/time parser
        =========================
        
        .. image:: https://travis-ci.org/gweis/isodate.svg?branch=master
            :target: https://travis-ci.org/gweis/isodate
            :alt: Travis-CI
        .. image:: https://coveralls.io/repos/gweis/isodate/badge.svg?branch=master
            :target: https://coveralls.io/r/gweis/isodate?branch=master
            :alt: Coveralls
        .. image:: https://pypip.in/version/isodate/badge.svg
            :target: https://pypi.python.org/pypi/isodate/
            :alt: Latest Version
        .. image:: https://pypip.in/download/isodate/badge.svg
            :target: https://pypi.python.org/pypi/isodate/
            :alt: Downloads
        .. image:: https://pypip.in/license/isodate/badge.svg
            :target: https://pypi.python.org/pypi/isodate/
            :alt: License
        
        
        This module implements ISO 8601 date, time and duration parsing.
        The implementation follows ISO8601:2004 standard, and implements only
        date/time representations mentioned in the standard. If something is not
        mentioned there, then it is treated as non existent, and not as an allowed
        option.
        
        For instance, ISO8601:2004 never mentions 2 digit years. So, it is not
        intended by this module to support 2 digit years. (while it may still
        be valid as ISO date, because it is not explicitly forbidden.)
        Another example is, when no time zone information is given for a time,
        then it should be interpreted as local time, and not UTC.
        
        As this module maps ISO 8601 dates/times to standard Python data types, like
        *date*, *time*, *datetime* and *timedelta*, it is not possible to convert
        all possible ISO 8601 dates/times. For instance, dates before 0001-01-01 are
        not allowed by the Python *date* and *datetime* classes. Additionally
        fractional seconds are limited to microseconds. That means if the parser finds
        for instance nanoseconds it will round it to microseconds.
        
        Documentation
        -------------
        
        Currently there are four parsing methods available.
           * parse_time:
                parses an ISO 8601 time string into a *time* object
           * parse_date:
                parses an ISO 8601 date string into a *date* object
           * parse_datetime:
                parses an ISO 8601 date-time string into a *datetime* object
           * parse_duration:
                parses an ISO 8601 duration string into a *timedelta* or *Duration*
                object.
           * parse_tzinfo:
                parses the time zone info part of an ISO 8601 string into a
                *tzinfo* object.
        
        As ISO 8601 allows to define durations in years and months, and *timedelta*
        does not handle years and months, this module provides a *Duration* class,
        which can be used almost like a *timedelta* object (with some limitations).
        However, a *Duration* object can be converted into a *timedelta* object.
        
        There are also ISO formatting methods for all supported data types. Each
        *xxx_isoformat* method accepts a format parameter. The default format is
        always the ISO 8601 expanded format. This is the same format used by
        *datetime.isoformat*:
        
            * time_isoformat:
                Intended to create ISO time strings with default format
                *hh:mm:ssZ*.
            * date_isoformat:
                Intended to create ISO date strings with default format
                *yyyy-mm-dd*.
            * datetime_isoformat:
                Intended to create ISO date-time strings with default format
                *yyyy-mm-ddThh:mm:ssZ*.
            * duration_isoformat:
                Intended to create ISO duration strings with default format
                *PnnYnnMnnDTnnHnnMnnS*.
            * tz_isoformat:
                Intended to create ISO time zone strings with default format
                *hh:mm*.
            * strftime:
                A re-implementation mostly compatible with Python's *strftime*, but
                supports only those format strings, which can also be used for dates
                prior 1900. This method also understands how to format *datetime* and
                *Duration* instances.
        
        Installation:
        -------------
        
        This module can easily be installed with Python standard installation methods.
        
        Either use *python setup.py install* or in case you have *setuptools* or
        *distribute* available, you can also use *easy_install*.
        
        Limitations:
        ------------
        
           * The parser accepts several date/time representation which should be invalid
             according to ISO 8601 standard.
        
             1. for date and time together, this parser accepts a mixture of basic and extended format.
                e.g. the date could be in basic format, while the time is accepted in extended format.
                It also allows short dates and times in date-time strings.
             2. For incomplete dates, the first day is chosen. e.g. 19th century results in a date of
                1901-01-01.
             3. negative *Duration* and *timedelta* value are not fully supported yet.
        
        Further information:
        --------------------
        
        The doc strings and unit tests should provide rather detailed information about
        the methods and their limitations.
        
        The source release provides a *setup.py* script and a *buildout.cfg*. Both can
        be used to run the unit tests included.
        
        Source code is available at `<http://github.com/gweis/isodate>`_.
        
        CHANGES
        =======
        
        0.5.4 (2015-08-06)
        ------------------
        
        - Fix parsing of Periods (Fabien Bochu)
        - Make Duration objects hashable (Geoffrey Fairchild)
        - Add multiplication to duration (Reinoud Elhorst)
        
        
        0.5.1 (2014-11-07)
        ------------------
        
        - fixed pickling of Duration objects
        - raise ISO8601Error when there is no 'T' separator in datetime strings (Adrian Coveney)
        
        
        0.5.0 (2014-02-23)
        ------------------
        
        - ISO8601Error are subclasses of ValueError now (Michael Hrivnak)
        - improve compatibility across various python variants and versions
        - raise exceptions when using fractional years and months in date
          maths with durations
        - renamed method todatetime on Duraction objects to totimedelta
        
        
        0.4.9 (2012-10-30)
        ------------------
        
        - support pickling FixedOffset instances
        - make sure parsed fractional seconds are in microseconds
        - add leading zeros when formattig microseconds (Jarom Loveridge)
        
        
        0.4.8 (2012-05-04)
        ------------------
        
        - fixed incompatibility of unittests with python 2.5 and 2.6 (runs fine on 2.7
          and 3.2)
        
        
        0.4.7 (2012-01-26)
        ------------------
        
        - fixed tzinfo formatting (never pass None into tzinfo.utcoffset())
        
        
        0.4.6 (2012-01-06)
        ------------------
        
        - added Python 3 compatibility via 2to3
        
        0.4.5 (2012-01-06)
        ------------------
        
        - made setuptools dependency optional
        
        0.4.4 (2011-04-16)
        ------------------
        
        - Fixed formatting of microseconds for datetime objects
        
        0.4.3 (2010-10-29)
        ------------------
        
        - Fixed problem with %P formating and fractions (supplied by David Brooks)
        
        0.4.2 (2010-10-28)
        ------------------
        
        - Implemented unary - for Duration (supplied by David Brooks)
        - Output fractional seconds with '%P' format. (partly supplied by David Brooks)
        
        0.4.1 (2010-10-13)
        ------------------
        
        - fixed bug in comparison between timedelta and Duration.
        - fixed precision problem with microseconds (reported by Tommi Virtanen)
        
        0.4.0 (2009-02-09)
        ------------------
        
        - added method to parse ISO 8601 time zone strings
        - added methods to create ISO 8601 conforming strings
        
        0.3.0 (2009-1-05)
        ------------------
        
        - Initial release
        
        TODOs
        =====
        
        This to do list contains some thoughts and ideas about missing features, and
        parts to think about, whether to implement them or not. This list is probably
        not complete.
        
        Missing features:
        -----------------
        
            * time formating does not allow to create fractional representations.
            * parser for ISO intervals.
            * currently microseconds are always padded to a length of 6 characters.
              trailing 0s should be optional
        
        Documentation:
        --------------
        
            * parse_datetime:
               - complete documentation to show what this function allows, but ISO forbids.
                 and vice verse.
               - support other separators between date and time than 'T'
        
            * parse_date:
               - yeardigits should be always greater than 4
               - dates before 0001-01-01 are not supported
        
            * parse_duration:
               - alternative formats are not fully supported due to parse_date restrictions
               - standard duration format is fully supported but not very restrictive.
        
            * Duration:
               - support fractional years and month in calculations
               - implement w3c order relation? (`<http://www.w3.org/TR/xmlschema-2/#duration-order>`_)
               - refactor to have duration mathematics only at one place.
               - localize __str__ method (does timedelta do this?)
               - when is a Duration negative?
               - normalize Durations. months [00-12] and years ]-inf,+inf[
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries :: Python Modules