[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Fri Aug 21 00:13:02 UTC 2020


The branch, master has been updated
       via  4dbe8d11316 python: Remove remaining references to third_party python libs
       via  2420b7c6d20 python: Add checks for some more required python packages
       via  091e11260d6 Remove pyiso8601 from third_party
       via  0573c13da2c bootstrap: Fix python dependencies
       via  7dc535995bb bootstrap: Fix spelling of README.md
      from  ef57bc6d4b5 torture: Fix ldap.basic multibind test

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 4dbe8d11316891f7275a7a37e04e11abb1b3706d
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Aug 18 21:38:57 2020 +1200

    python: Remove remaining references to third_party python libs
    
    For now at least we do not have any in third_party.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: David Mulder <dmulder at suse.com>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Fri Aug 21 00:12:52 UTC 2020 on sn-devel-184

commit 2420b7c6d2038aca33759ca3a7d41240c5f19bf7
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Aug 18 11:59:09 2020 +1200

    python: Add checks for some more required python packages
    
    This catches the most important packages we require, but
    this may not be the full list.
    
    python-gpg is not listed as we have a big workaround handler
    for this in samba-tool.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: David Mulder <dmulder at suse.com>

commit 091e11260d66a6a038aee08f2fed4fc1711aa03b
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Aug 17 17:14:25 2020 +1200

    Remove pyiso8601 from third_party
    
    The trend has been to remove widely available packages from third_party/
    
    This module is both widely available, and only needed for --enable-selftest
    
    It is, strangely enough, a BuildDependes in the RHEL/Fedora packages
    just to stop it being installed in third_party.
    
    The check for iso8601 being available is moved to python/wscript
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: David Mulder <dmulder at suse.com>

commit 0573c13da2c7f4ac67f4b17c278fa42d65ac857b
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Aug 18 14:50:36 2020 +1200

    bootstrap: Fix python dependencies
    
    Python2 dependencies are removed and the RPM name of python-iso8601
    is added to allow removal from third_party.
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: David Mulder <dmulder at suse.com>

commit 7dc535995bbdb42b1b053c22acff5978cb5da516
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Aug 18 14:53:35 2020 +1200

    bootstrap: Fix spelling of README.md
    
    Signed-off-by: Andrew Bartlett <abartlet at samba.org>
    Reviewed-by: David Mulder <dmulder at suse.com>

-----------------------------------------------------------------------

Summary of changes:
 .gitlab-ci.yml                                     |   2 +-
 bootstrap/{READMD.md => README.md}                 |   0
 bootstrap/config.py                                |   5 +-
 bootstrap/generated-dists/centos7/bootstrap.sh     |   1 +
 bootstrap/generated-dists/centos7/packages.yml     |   1 +
 bootstrap/generated-dists/centos8/bootstrap.sh     |   1 +
 bootstrap/generated-dists/centos8/packages.yml     |   1 +
 bootstrap/generated-dists/fedora31/bootstrap.sh    |   1 +
 bootstrap/generated-dists/fedora31/packages.yml    |   1 +
 bootstrap/generated-dists/fedora32/bootstrap.sh    |   1 +
 bootstrap/generated-dists/fedora32/packages.yml    |   1 +
 bootstrap/generated-dists/opensuse150/bootstrap.sh |   1 +
 bootstrap/generated-dists/opensuse150/packages.yml |   1 +
 bootstrap/generated-dists/opensuse151/bootstrap.sh |   1 +
 bootstrap/generated-dists/opensuse151/packages.yml |   1 +
 bootstrap/sha1sum.txt                              |   2 +-
 python/samba/__init__.py                           |  40 ----
 python/samba/subunit/__init__.py                   |   1 -
 python/wscript                                     |  37 +++
 script/show_test_time                              |   2 -
 third_party/pyiso8601/.hgignore                    |   8 -
 third_party/pyiso8601/.hgtags                      |   6 -
 third_party/pyiso8601/LICENSE                      |  20 --
 third_party/pyiso8601/MANIFEST.in                  |   2 -
 third_party/pyiso8601/README.rst                   | 180 --------------
 third_party/pyiso8601/dev-requirements.txt         |   5 -
 third_party/pyiso8601/docs/Makefile                | 177 --------------
 third_party/pyiso8601/docs/conf.py                 | 266 ---------------------
 third_party/pyiso8601/docs/index.rst               |  80 -------
 third_party/pyiso8601/docs/make.bat                | 242 -------------------
 third_party/pyiso8601/iso8601/__init__.py          |   1 -
 third_party/pyiso8601/iso8601/iso8601.py           | 214 -----------------
 third_party/pyiso8601/iso8601/test_iso8601.py      |  97 --------
 third_party/pyiso8601/setup.py                     |  25 --
 third_party/pyiso8601/tox.ini                      |   8 -
 third_party/wscript                                |  64 +----
 36 files changed, 53 insertions(+), 1443 deletions(-)
 rename bootstrap/{READMD.md => README.md} (100%)
 delete mode 100644 third_party/pyiso8601/.hgignore
 delete mode 100644 third_party/pyiso8601/.hgtags
 delete mode 100644 third_party/pyiso8601/LICENSE
 delete mode 100644 third_party/pyiso8601/MANIFEST.in
 delete mode 100644 third_party/pyiso8601/README.rst
 delete mode 100644 third_party/pyiso8601/dev-requirements.txt
 delete mode 100644 third_party/pyiso8601/docs/Makefile
 delete mode 100644 third_party/pyiso8601/docs/conf.py
 delete mode 100644 third_party/pyiso8601/docs/index.rst
 delete mode 100644 third_party/pyiso8601/docs/make.bat
 delete mode 100644 third_party/pyiso8601/iso8601/__init__.py
 delete mode 100644 third_party/pyiso8601/iso8601/iso8601.py
 delete mode 100644 third_party/pyiso8601/iso8601/test_iso8601.py
 delete mode 100644 third_party/pyiso8601/setup.py
 delete mode 100644 third_party/pyiso8601/tox.ini


Changeset truncated at 500 lines:

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c657b4a1d8f..39c5d2765c3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,7 +23,7 @@ variables:
   # Set this to the contents of bootstrap/sha1sum.txt
   # which is generated by bootstrap/template.py --render
   #
-  SAMBA_CI_CONTAINER_TAG: 1275dc52ac8c1de5981f267df88b85b6f87e299a
+  SAMBA_CI_CONTAINER_TAG: abd0e3b4cadc9691200c43769e69a3a7b50d9fde
   #
   # We use the ubuntu1804 image as default as
   # it matches what we have on sn-devel-184.
diff --git a/bootstrap/READMD.md b/bootstrap/README.md
similarity index 100%
rename from bootstrap/READMD.md
rename to bootstrap/README.md
diff --git a/bootstrap/config.py b/bootstrap/config.py
index 24f21a3c749..2c83876459d 100644
--- a/bootstrap/config.py
+++ b/bootstrap/config.py
@@ -134,7 +134,7 @@ PKGS = [
     ('python3-cryptography', 'python3-cryptography'), # for krb5 tests
     ('python3-dev', 'python3-devel'),
     ('python3-dbg', ''),
-    ('python3-iso8601', ''),
+    ('python3-iso8601', 'python3-iso8601'),
     ('python3-gpg', 'python3-gpg'),  # defaults to ubuntu/fedora latest
     ('python3-markdown', 'python3-markdown'),
     ('python3-matplotlib', ''),
@@ -393,7 +393,6 @@ DEB_DISTS = {
         'docker_image': 'ubuntu:16.04',
         'vagrant_box': 'ubuntu/xenial64',
         'replace': {
-            'python-gpg': 'python-gpgme',
             'python3-gpg': 'python3-gpgme',
             'glusterfs-common': '',
             'libcephfs-dev': '',
@@ -508,7 +507,6 @@ RPM_DISTS = {
             'perl-generators': '',
             'perl-interpreter': '',
             'procps-ng': 'procps',
-            'python-dns': 'python2-dnspython',
             'python3-dns': 'python3-dnspython',
             'python3-markdown': 'python3-Markdown',
             'quota-devel': '',
@@ -540,7 +538,6 @@ RPM_DISTS = {
             'perl-generators': '',
             'perl-interpreter': '',
             'procps-ng': 'procps',
-            'python-dns': 'python2-dnspython',
             'python3-dns': 'python3-dnspython',
             'python3-markdown': 'python3-Markdown',
             'quota-devel': '',
diff --git a/bootstrap/generated-dists/centos7/bootstrap.sh b/bootstrap/generated-dists/centos7/bootstrap.sh
index 9c81a1e1e68..8b50b8de125 100755
--- a/bootstrap/generated-dists/centos7/bootstrap.sh
+++ b/bootstrap/generated-dists/centos7/bootstrap.sh
@@ -87,6 +87,7 @@ yum install -y \
     python36-cryptography \
     python36-devel \
     python36-dns \
+    python36-iso8601 \
     python36-markdown \
     python36-pyasn1 \
     quota-devel \
diff --git a/bootstrap/generated-dists/centos7/packages.yml b/bootstrap/generated-dists/centos7/packages.yml
index 55502974829..9dd36ec0daa 100644
--- a/bootstrap/generated-dists/centos7/packages.yml
+++ b/bootstrap/generated-dists/centos7/packages.yml
@@ -73,6 +73,7 @@ packages:
   - python36-cryptography
   - python36-devel
   - python36-dns
+  - python36-iso8601
   - python36-markdown
   - python36-pyasn1
   - quota-devel
diff --git a/bootstrap/generated-dists/centos8/bootstrap.sh b/bootstrap/generated-dists/centos8/bootstrap.sh
index b494d0040dd..08cb02105a4 100755
--- a/bootstrap/generated-dists/centos8/bootstrap.sh
+++ b/bootstrap/generated-dists/centos8/bootstrap.sh
@@ -92,6 +92,7 @@ yum install -y \
     python3-devel \
     python3-dns \
     python3-gpg \
+    python3-iso8601 \
     python3-libsemanage \
     python3-markdown \
     python3-policycoreutils \
diff --git a/bootstrap/generated-dists/centos8/packages.yml b/bootstrap/generated-dists/centos8/packages.yml
index f3ba7a9088a..dd487a2eced 100644
--- a/bootstrap/generated-dists/centos8/packages.yml
+++ b/bootstrap/generated-dists/centos8/packages.yml
@@ -74,6 +74,7 @@ packages:
   - python3-devel
   - python3-dns
   - python3-gpg
+  - python3-iso8601
   - python3-libsemanage
   - python3-markdown
   - python3-policycoreutils
diff --git a/bootstrap/generated-dists/fedora31/bootstrap.sh b/bootstrap/generated-dists/fedora31/bootstrap.sh
index 4bbda3ce3c8..3fb60bc00eb 100755
--- a/bootstrap/generated-dists/fedora31/bootstrap.sh
+++ b/bootstrap/generated-dists/fedora31/bootstrap.sh
@@ -88,6 +88,7 @@ dnf install -y \
     python3-devel \
     python3-dns \
     python3-gpg \
+    python3-iso8601 \
     python3-libsemanage \
     python3-markdown \
     python3-policycoreutils \
diff --git a/bootstrap/generated-dists/fedora31/packages.yml b/bootstrap/generated-dists/fedora31/packages.yml
index 4a8356cddb3..37422007549 100644
--- a/bootstrap/generated-dists/fedora31/packages.yml
+++ b/bootstrap/generated-dists/fedora31/packages.yml
@@ -77,6 +77,7 @@ packages:
   - python3-devel
   - python3-dns
   - python3-gpg
+  - python3-iso8601
   - python3-libsemanage
   - python3-markdown
   - python3-policycoreutils
diff --git a/bootstrap/generated-dists/fedora32/bootstrap.sh b/bootstrap/generated-dists/fedora32/bootstrap.sh
index 4bbda3ce3c8..3fb60bc00eb 100755
--- a/bootstrap/generated-dists/fedora32/bootstrap.sh
+++ b/bootstrap/generated-dists/fedora32/bootstrap.sh
@@ -88,6 +88,7 @@ dnf install -y \
     python3-devel \
     python3-dns \
     python3-gpg \
+    python3-iso8601 \
     python3-libsemanage \
     python3-markdown \
     python3-policycoreutils \
diff --git a/bootstrap/generated-dists/fedora32/packages.yml b/bootstrap/generated-dists/fedora32/packages.yml
index 4a8356cddb3..37422007549 100644
--- a/bootstrap/generated-dists/fedora32/packages.yml
+++ b/bootstrap/generated-dists/fedora32/packages.yml
@@ -77,6 +77,7 @@ packages:
   - python3-devel
   - python3-dns
   - python3-gpg
+  - python3-iso8601
   - python3-libsemanage
   - python3-markdown
   - python3-policycoreutils
diff --git a/bootstrap/generated-dists/opensuse150/bootstrap.sh b/bootstrap/generated-dists/opensuse150/bootstrap.sh
index 1a38fbdef22..d99d835719f 100755
--- a/bootstrap/generated-dists/opensuse150/bootstrap.sh
+++ b/bootstrap/generated-dists/opensuse150/bootstrap.sh
@@ -85,6 +85,7 @@ zypper --non-interactive install \
     python3-devel \
     python3-dnspython \
     python3-gpg \
+    python3-iso8601 \
     python3-pyasn1 \
     readline-devel \
     rng-tools \
diff --git a/bootstrap/generated-dists/opensuse150/packages.yml b/bootstrap/generated-dists/opensuse150/packages.yml
index bfb352f749e..30d102484be 100644
--- a/bootstrap/generated-dists/opensuse150/packages.yml
+++ b/bootstrap/generated-dists/opensuse150/packages.yml
@@ -73,6 +73,7 @@ packages:
   - python3-devel
   - python3-dnspython
   - python3-gpg
+  - python3-iso8601
   - python3-pyasn1
   - readline-devel
   - rng-tools
diff --git a/bootstrap/generated-dists/opensuse151/bootstrap.sh b/bootstrap/generated-dists/opensuse151/bootstrap.sh
index 1a38fbdef22..d99d835719f 100755
--- a/bootstrap/generated-dists/opensuse151/bootstrap.sh
+++ b/bootstrap/generated-dists/opensuse151/bootstrap.sh
@@ -85,6 +85,7 @@ zypper --non-interactive install \
     python3-devel \
     python3-dnspython \
     python3-gpg \
+    python3-iso8601 \
     python3-pyasn1 \
     readline-devel \
     rng-tools \
diff --git a/bootstrap/generated-dists/opensuse151/packages.yml b/bootstrap/generated-dists/opensuse151/packages.yml
index bfb352f749e..30d102484be 100644
--- a/bootstrap/generated-dists/opensuse151/packages.yml
+++ b/bootstrap/generated-dists/opensuse151/packages.yml
@@ -73,6 +73,7 @@ packages:
   - python3-devel
   - python3-dnspython
   - python3-gpg
+  - python3-iso8601
   - python3-pyasn1
   - readline-devel
   - rng-tools
diff --git a/bootstrap/sha1sum.txt b/bootstrap/sha1sum.txt
index 345d4a95e98..c9834e2a19d 100644
--- a/bootstrap/sha1sum.txt
+++ b/bootstrap/sha1sum.txt
@@ -1 +1 @@
-1275dc52ac8c1de5981f267df88b85b6f87e299a
+abd0e3b4cadc9691200c43769e69a3a7b50d9fde
diff --git a/python/samba/__init__.py b/python/samba/__init__.py
index 360918c49ad..0341cb36dfe 100644
--- a/python/samba/__init__.py
+++ b/python/samba/__init__.py
@@ -322,46 +322,6 @@ def valid_netbios_name(name):
     return True
 
 
-def import_bundled_package(modulename, location, source_tree_container,
-                           namespace):
-    """Import the bundled version of a package.
-
-    :note: This should only be called if the system version of the package
-        is not adequate.
-
-    :param modulename: Module name to import
-    :param location: Location to add to sys.path (can be relative to
-        ${srcdir}/${source_tree_container})
-    :param source_tree_container: Directory under source root that
-        contains the bundled third party modules.
-    :param namespace: Namespace to import module from, when not in source tree
-    """
-    if in_source_tree():
-        extra_path = os.path.join(source_tree_topdir(), source_tree_container,
-                                  location)
-        if extra_path not in sys.path:
-            sys.path.insert(0, extra_path)
-        sys.modules[modulename] = __import__(modulename)
-    else:
-        sys.modules[modulename] = __import__(
-            "%s.%s" % (namespace, modulename), fromlist=[namespace])
-
-
-def ensure_third_party_module(modulename, location):
-    """Add a location to sys.path if a third party dependency can't be found.
-
-    :param modulename: Module name to import
-    :param location: Location to add to sys.path (can be relative to
-        ${srcdir}/third_party)
-    """
-    try:
-        __import__(modulename)
-    except ImportError:
-        import_bundled_package(modulename, location,
-                               source_tree_container="third_party",
-                               namespace="samba.third_party")
-
-
 def dn_from_dns_name(dnsdomain):
     """return a DN from a DNS name domain/forest root"""
     return "DC=" + ",DC=".join(dnsdomain.split("."))
diff --git a/python/samba/subunit/__init__.py b/python/samba/subunit/__init__.py
index ca5511f899e..fef06ffa1cd 100644
--- a/python/samba/subunit/__init__.py
+++ b/python/samba/subunit/__init__.py
@@ -19,7 +19,6 @@
 
 import samba
 
-samba.ensure_third_party_module("iso8601", "pyiso8601")
 import iso8601
 
 import unittest
diff --git a/python/wscript b/python/wscript
index 916031896d3..20ca9f1f862 100644
--- a/python/wscript
+++ b/python/wscript
@@ -1,6 +1,34 @@
 #!/usr/bin/env python
 
 import os
+from waflib import Options, Errors
+
+# work out what python external libraries we need to be successful
+selftest_pkgs = {
+    'iso8601': 'python3-iso8601',
+    'cryptography': 'python3-cryptography',
+    'pyasn1': 'python3-asn1'
+}
+
+ad_dc_pkgs = {
+    'markdown': 'python3-markdown',
+    'dns': 'python3-dnspython (python3-dns on some systems)'
+}
+
+
+def find_third_party_module(conf, module, package):
+    conf.COMPOUND_START("Checking for system installation of Python module %s" % module)
+    try:
+        __import__(module)
+    except ImportError:
+        conf.COMPOUND_END(False)
+        raise Errors.WafError("""\
+        Unable to find Python module '%s'. Please install the system package: %s'.
+""" % (module, package))
+    else:
+        # Installed on the system
+        conf.COMPOUND_END("system")
+
 
 def configure(conf):
     if conf.env.disable_python:
@@ -41,6 +69,15 @@ def configure(conf):
     finally:
         f.close()
 
+    if conf.CONFIG_GET('ENABLE_SELFTEST'):
+        for module, package in selftest_pkgs.items():
+            find_third_party_module(conf, module, package)
+
+    if not Options.options.without_ad_dc:
+        for module, package in ad_dc_pkgs.items():
+            find_third_party_module(conf, module, package)
+
+
 def build(bld):
 
 
diff --git a/script/show_test_time b/script/show_test_time
index fae7b814f49..5a84f19787c 100755
--- a/script/show_test_time
+++ b/script/show_test_time
@@ -10,8 +10,6 @@ parser.add_option("--limit", dest="limit", type=int,
                   help="Limit to this number of output entries.", default=0)
 (opts, args) = parser.parse_args()
 
-third_party_path = os.path.join(os.path.dirname(sys.argv[0]), "..", "lib")
-
 durations = {}
 
 cmd = "subunit-1to2 | subunit-ls --times --no-passthrough"
diff --git a/third_party/pyiso8601/.hgignore b/third_party/pyiso8601/.hgignore
deleted file mode 100644
index 2906798647d..00000000000
--- a/third_party/pyiso8601/.hgignore
+++ /dev/null
@@ -1,8 +0,0 @@
-syntax: glob
-build
-dist
-*.pyc
-iso8601.egg-info
-pyiso8601-venv
-.tox
-_build
\ No newline at end of file
diff --git a/third_party/pyiso8601/.hgtags b/third_party/pyiso8601/.hgtags
deleted file mode 100644
index 4e2dcb820ca..00000000000
--- a/third_party/pyiso8601/.hgtags
+++ /dev/null
@@ -1,6 +0,0 @@
-bd89974951dae66bdb1c441d2e931f6b27fe1097 0.1.5
-462f8303fc3995150c188d3708fb6981d7705453 0.1.6
-1881bf20e595e5b923f5c8b1f859dc310e5f22c2 0.1.7
-01161826be6e8a99cde813850f0d6ed7952ff377 0.1.8
-4b511368cef17b3648af3bc16d2421ce8fbe4dc8 0.1.9
-0f02cc55100a1bad23c0ea0bd0f07b8de0e3e3f0 0.1.10
diff --git a/third_party/pyiso8601/LICENSE b/third_party/pyiso8601/LICENSE
deleted file mode 100644
index 37bbd6c14f9..00000000000
--- a/third_party/pyiso8601/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2007 - 2014 Michael Twomey
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/third_party/pyiso8601/MANIFEST.in b/third_party/pyiso8601/MANIFEST.in
deleted file mode 100644
index ea47448e5be..00000000000
--- a/third_party/pyiso8601/MANIFEST.in
+++ /dev/null
@@ -1,2 +0,0 @@
-recursive-include iso8601 *.py
-include README.rst LICENSE tox.ini setup.py *requirements.txt
\ No newline at end of file
diff --git a/third_party/pyiso8601/README.rst b/third_party/pyiso8601/README.rst
deleted file mode 100644
index 6ad8f49f4b0..00000000000
--- a/third_party/pyiso8601/README.rst
+++ /dev/null
@@ -1,180 +0,0 @@
-Simple module to parse ISO 8601 dates
-
-This module parses the most common forms of ISO 8601 date strings (e.g.
-2007-01-14T20:34:22+00:00) into datetime objects.
-
->>> import iso8601
->>> iso8601.parse_date("2007-01-25T12:00:00Z")
-datetime.datetime(2007, 1, 25, 12, 0, tzinfo=<iso8601.Utc>)
->>>
-
-See the LICENSE file for the license this package is released under.
-
-If you want more full featured parsing look at:
-
-- http://labix.org/python-dateutil - python-dateutil
-
-Parsed Formats
-==============
-
-You can parse full date + times, or just the date. In both cases a datetime instance is returned but with missing times defaulting to 0, and missing days / months defaulting to 1.
-
-Dates
------
-
-- YYYY-MM-DD
-- YYYYMMDD
-- YYYY-MM (defaults to 1 for the day)
-- YYYY (defaults to 1 for month and day)
-
-Times
------
-
-- hh:mm:ss.nn
-- hhmmss.nn
-- hh:mm (defaults to 0 for seconds)
-- hhmm (defaults to 0 for seconds)
-- hh (defaults to 0 for minutes and seconds)
-
-Time Zones
-----------
-
-- Nothing, will use the default timezone given (which in turn defaults to UTC).
-- Z (UTC)
-- +/-hh:mm
-- +/-hhmm
-- +/-hh
-
-Where it Differs From ISO 8601
-==============================
-
-Known differences from the ISO 8601 spec:
-
-- You can use a " " (space) instead of T for separating date from time.
-- Days and months without a leading 0 (2 vs 02) will be parsed.
-- If time zone information is omitted the default time zone given is used (which in turn defaults to UTC). Use a default of None to yield naive datetime instances.
-
-Homepage
-========
-
-- Documentation: http://pyiso8601.readthedocs.org/
-- Source: https://bitbucket.org/micktwomey/pyiso8601/
-
-This was originally hosted at https://code.google.com/p/pyiso8601/
-
-References
-==========
-
-- http://en.wikipedia.org/wiki/ISO_8601
-
-- http://www.cl.cam.ac.uk/~mgk25/iso-time.html - simple overview
-
-- http://hydracen.com/dx/iso8601.htm - more detailed enumeration of valid formats.
-
-Testing
-=======
-
-1. pip install -r dev-requirements.txt
-2. tox
-
-Note that you need all the pythons installed to perform a tox run (see below). Homebrew helps a lot on the mac, however you wind up having to add cellars to your PATH or symlinking the pythonX.Y executables.
-
-Alternatively, to test only with your current python:
-
-1. pip install -r dev-requirements.txt
-2. py.test --verbose iso8601
-
-Supported Python Versions
-=========================
-
-Tested against:
-
-- Python 2.6
-- Python 2.7
-- Python 3.2
-- Python 3.3
-- Python 3.4


-- 
Samba Shared Repository



More information about the samba-cvs mailing list