[Python-modules-commits] [lazy-object-proxy] 01/08: Import lazy-object-proxy_1.2.2.orig.tar.gz

Sandro Tosi morph at moszumanska.debian.org
Fri Apr 22 20:07:41 UTC 2016


This is an automated email from the git hooks/post-receive script.

morph pushed a commit to branch master
in repository lazy-object-proxy.

commit 2a9be12d11cfa69d71ba868af293aa324c5eb576
Author: Sandro Tosi <morph at debian.org>
Date:   Wed Apr 20 19:46:33 2016 +0100

    Import lazy-object-proxy_1.2.2.orig.tar.gz
---
 .bumpversion.cfg                           |  11 ++
 .cookiecutterrc                            |  61 +++++----
 .editorconfig                              |  13 ++
 .travis.yml                                |  44 +++---
 AUTHORS.rst                                |   2 +-
 CHANGELOG.rst                              |   6 +
 CONTRIBUTING.rst                           |  15 ++-
 LICENSE                                    |   2 +-
 MANIFEST.in                                |   4 +-
 PKG-INFO                                   |  75 ++---------
 README.rst                                 |  51 ++++---
 appveyor.yml                               | 210 +++++++++++++++++------------
 ci/appveyor-bootstrap.ps1                  |  88 ------------
 ci/appveyor-bootstrap.py                   | 117 ++++++++++++++++
 ci/appveyor-download.py                    | 107 +++++++++++++++
 ci/appveyor-with-compiler.cmd              |  37 +++--
 ci/bootstrap.py                            |   4 +
 ci/templates/.travis.yml                   |  27 ++--
 ci/templates/appveyor.yml                  |  67 +++++----
 ci/templates/tox.ini                       |  59 ++++----
 docs/conf.py                               |  26 +++-
 docs/index.rst                             |   7 +-
 docs/readme.rst                            |   4 -
 docs/reference/lazy_object_proxy.rst       |   6 +-
 docs/requirements.txt                      |   3 +-
 setup.cfg                                  |  34 ++---
 setup.py                                   |  39 +++---
 src/lazy_object_proxy.egg-info/PKG-INFO    |  75 ++---------
 src/lazy_object_proxy.egg-info/SOURCES.txt |   5 +-
 src/lazy_object_proxy/__init__.py          |   8 +-
 tests/compat.py                            |  52 +++----
 tests/test_lazy_object_proxy.py            |   6 +-
 tox.ini                                    | 156 +++++++++++++--------
 33 files changed, 830 insertions(+), 591 deletions(-)

diff --git a/.bumpversion.cfg b/.bumpversion.cfg
new file mode 100644
index 0000000..2ee4ce8
--- /dev/null
+++ b/.bumpversion.cfg
@@ -0,0 +1,11 @@
+[bumpversion]
+current_version = 1.2.2
+commit = True
+tag = True
+
+[bumpversion:file:setup.py]
+
+[bumpversion:file:docs/conf.py]
+
+[bumpversion:file:src/lazy_object_proxy/__init__.py]
+
diff --git a/.cookiecutterrc b/.cookiecutterrc
index a98746c..da69998 100644
--- a/.cookiecutterrc
+++ b/.cookiecutterrc
@@ -1,29 +1,34 @@
-# This file exists so you can easily regenerate your project.
-#
-# Unfortunatelly cookiecutter can't use this right away so
-# you have to copy this file to ~/.cookiecutterrc
+# Generated by cookiepatcher, a small shim around cookiecutter (pip install cookiepatcher)
 
-default_context:
-
-    c_extension_optional:      'yes'
-    c_extension_support:       'yes'
-    codecov:                   'yes'
-    command_line_interface:    'no'
-    coveralls:                 'yes'
-    distribution_name:         'lazy-object-proxy'
-    email:                     'contact at ionelmc.ro'
-    full_name:                 'Ionel Cristian Mărieș'
-    github_username:           'ionelmc'
-    landscape:                 'yes'
-    package_name:              'lazy_object_proxy'
-    project_name:              'lazy-object-proxy'
-    project_short_description: 'A fast and thorough lazy object proxy.'
-    release_date:              '2015-04-11'
-    repo_name:                 'python-lazy-object-proxy'
-    scrutinizer:               'yes'
-    sphinx_theme:              'sphinx-py3doc-enhanced-theme'
-    test_matrix_configurator:  'yes'
-    test_runner:               'pytest'
-    version:                   '1.0.2'
-    website:                   'http://blog.ionelmc.ro'
-    year:                      '2014-2015'
+cookiecutter:
+    appveyor: 'yes'
+    c_extension_cython: 'no'
+    c_extension_optional: 'yes'
+    c_extension_support: 'yes'
+    codacy: 'yes'
+    codeclimate: 'yes'
+    codecov: 'yes'
+    command_line_interface: 'no'
+    command_line_interface_bin_name: lazy-object-proxy
+    coveralls: 'yes'
+    distribution_name: lazy-object-proxy
+    email: contact at ionelmc.ro
+    full_name: Ionel Cristian Mărieș
+    github_username: ionelmc
+    landscape: 'yes'
+    package_name: lazy_object_proxy
+    project_name: lazy-object-proxy
+    project_short_description: A fast and thorough lazy object proxy.
+    release_date: '2016-04-14'
+    repo_name: python-lazy-object-proxy
+    requiresio: 'yes'
+    scrutinizer: 'yes'
+    sphinx_doctest: 'no'
+    sphinx_theme: sphinx-py3doc-enhanced-theme
+    test_matrix_configurator: 'yes'
+    test_matrix_separate_coverage: 'no'
+    test_runner: pytest
+    travis: 'yes'
+    version: 1.2.2
+    website: https://blog.ionelmc.ro
+    year: 2014-2016
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..4000618
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,13 @@
+# see http://editorconfig.org
+root = true
+
+[*]
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 4
+charset = utf-8
+
+[*.{bat,cmd,ps1}]
+end_of_line = crlf
diff --git a/.travis.yml b/.travis.yml
index 6e52d4b..8d84bb6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,33 +1,47 @@
 language: python
-python: 2.7
+python: '3.5'
 sudo: false
 env:
   global:
-    LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
+    - LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
+    - SEGFAULT_SIGNALS=all
   matrix:
     - TOXENV=check
-    - TOXENV=2.6,extension-coveralls,coveralls,codecov
-    - TOXENV=2.6-nocover
-    - TOXENV=2.7,extension-coveralls,coveralls,codecov
-    - TOXENV=2.7-nocover
-    - TOXENV=3.3,extension-coveralls,coveralls,codecov
-    - TOXENV=3.3-nocover
-    - TOXENV=3.4,extension-coveralls,coveralls,codecov
-    - TOXENV=3.4-nocover
-    - TOXENV=pypy,extension-coveralls,coveralls,codecov
-    - TOXENV=pypy-nocover
+    - TOXENV=docs
+
+    - TOXENV=2.6-cover,extension-coveralls,coveralls,codecov
+    - TOXENV=2.6-nocov
+    - TOXENV=2.7-cover,extension-coveralls,coveralls,codecov
+    - TOXENV=2.7-nocov
+    - TOXENV=3.3-cover,extension-coveralls,coveralls,codecov
+    - TOXENV=3.3-nocov
+    - TOXENV=3.4-cover,extension-coveralls,coveralls,codecov
+    - TOXENV=3.4-nocov
+    - TOXENV=3.5-cover,extension-coveralls,coveralls,codecov
+    - TOXENV=3.5-nocov
+    - TOXENV=pypy-cover,extension-coveralls,coveralls,codecov
+    - TOXENV=pypy-nocov
 before_install:
   - python --version
-  - virtualenv --version
-  - pip --version
   - uname -a
   - lsb_release -a
 install:
   - pip install tox
+  - virtualenv --version
+  - easy_install --version
+  - pip --version
+  - tox --version
 script:
   - tox -v
+after_failure:
+  - more .tox/log/* | cat
+  - more .tox/*/log/* | cat
+before_cache:
+  - rm -rf $HOME/.cache/pip/log
+cache:
+  directories:
+    - $HOME/.cache/pip
 notifications:
   email:
     on_success: never
     on_failure: always
-
diff --git a/AUTHORS.rst b/AUTHORS.rst
index 0e54887..d01607a 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -2,4 +2,4 @@
 Authors
 =======
 
-* Ionel Cristian Mărieș - http://blog.ionelmc.ro
+* Ionel Cristian Mărieș - https://blog.ionelmc.ro
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 4ebc615..42f5005 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -2,6 +2,12 @@
 Changelog
 =========
 
+1.2.2 (2016-04-14)
+------------------
+
+* Added `manylinux <https://www.python.org/dev/peps/pep-0513/>`_ wheels.
+* Minor cleanup in readme.
+
 1.2.1 (2015-08-18)
 ------------------
 
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 2e1bb7b..5a269b6 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -30,14 +30,15 @@ If you are proposing a feature:
 
 * Explain in detail how it would work.
 * Keep the scope as narrow as possible, to make it easier to implement.
-* Remember that this is a volunteer-driven project, and that contributions are welcome :)
+* Remember that this is a volunteer-driven project, and that code contributions are welcome :)
 
 Development
 ===========
 
 To set up `python-lazy-object-proxy` for local development:
 
-1. `Fork python-lazy-object-proxy on GitHub <https://github.com/ionelmc/python-lazy-object-proxy/fork>`_.
+1. Fork `python-lazy-object-proxy <https://github.com/ionelmc/python-lazy-object-proxy>`_
+   (look for the "Fork" button).
 2. Clone your fork locally::
 
     git clone git at github.com:your_name_here/python-lazy-object-proxy.git
@@ -68,15 +69,15 @@ If you need some code review or feedback while you're developing the code just m
 For merging, you should:
 
 1. Include passing tests (run ``tox``) [1]_.
-2. Update documentation when there's new API, functionality etc. 
+2. Update documentation when there's new API, functionality etc.
 3. Add a note to ``CHANGELOG.rst`` about the changes.
 4. Add yourself to ``AUTHORS.rst``.
 
-.. [1] If you don't have all the necessary python versions available locally you can rely on Travis - it will 
+.. [1] If you don't have all the necessary python versions available locally you can rely on Travis - it will
        `run the tests <https://travis-ci.org/ionelmc/python-lazy-object-proxy/pull_requests>`_ for each change you add in the pull request.
-       
+
        It will be slower though ...
-       
+
 Tips
 ----
 
@@ -86,4 +87,4 @@ To run a subset of tests::
 
 To run all the test environments in *parallel* (you need to ``pip install detox``)::
 
-    detox
\ No newline at end of file
+    detox
diff --git a/LICENSE b/LICENSE
index 0209986..9ac3fbe 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2014-2015, Ionel Cristian Mărieș
+Copyright (c) 2014-2016, Ionel Cristian Mărieș
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
diff --git a/MANIFEST.in b/MANIFEST.in
index 33a4802..92351c4 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -7,8 +7,8 @@ graft tests
 include .bumpversion.cfg
 include .coveragerc
 include .cookiecutterrc
+include .editorconfig
 include .isort.cfg
-include .pylintrc
 
 include AUTHORS.rst
 include CHANGELOG.rst
@@ -18,4 +18,4 @@ include README.rst
 
 include tox.ini .travis.yml appveyor.yml
 
-global-exclude *.py[cod] __pycache__ *.so
+global-exclude *.py[cod] __pycache__ *.so *.dylib
diff --git a/PKG-INFO b/PKG-INFO
index 3971fc0..2240a94 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,76 +1,16 @@
 Metadata-Version: 1.1
 Name: lazy-object-proxy
-Version: 1.2.1
+Version: 1.2.2
 Summary: A fast and thorough lazy object proxy.
 Home-page: https://github.com/ionelmc/python-lazy-object-proxy
 Author: Ionel Cristian Mărieș
 Author-email: contact at ionelmc.ro
 License: BSD
-Description: ===============================
-        lazy-object-proxy
-        ===============================
+Description: ========
+        Overview
+        ========
         
-        .. list-table::
-            :stub-columns: 1
         
-            * - docs
-              - |docs|
-            * - tests
-              - | |travis| |appveyor|
-                | |coveralls| |codecov| |landscape| |scrutinizer|
-            * - package
-              - |version| |downloads|
-        
-        ..
-            |wheel| |supported-versions| |supported-implementations|
-        
-        .. |docs| image:: https://readthedocs.org/projects/python-lazy-object-proxy/badge/?style=flat
-            :target: https://readthedocs.org/projects/python-lazy-object-proxy
-            :alt: Documentation Status
-        
-        .. |travis| image:: http://img.shields.io/travis/ionelmc/python-lazy-object-proxy/master.svg?style=flat&label=Travis
-            :alt: Travis-CI Build Status
-            :target: https://travis-ci.org/ionelmc/python-lazy-object-proxy
-        
-        .. |appveyor| image:: https://img.shields.io/appveyor/ci/ionelmc/python-lazy-object-proxy/master.svg?style=flat&label=AppVeyor
-            :alt: AppVeyor Build Status
-            :target: https://ci.appveyor.com/project/ionelmc/python-lazy-object-proxy
-        
-        .. |coveralls| image:: http://img.shields.io/coveralls/ionelmc/python-lazy-object-proxy/master.svg?style=flat&label=Coveralls
-            :alt: Coverage Status
-            :target: https://coveralls.io/r/ionelmc/python-lazy-object-proxy
-        
-        .. |codecov| image:: http://img.shields.io/codecov/c/github/ionelmc/python-lazy-object-proxy/master.svg?style=flat&label=Codecov
-            :alt: Coverage Status
-            :target: https://codecov.io/github/ionelmc/python-lazy-object-proxy
-        
-        .. |landscape| image:: https://landscape.io/github/ionelmc/python-lazy-object-proxy/master/landscape.svg?style=flat
-            :target: https://landscape.io/github/ionelmc/python-lazy-object-proxy/master
-            :alt: Code Quality Status
-        
-        .. |version| image:: http://img.shields.io/pypi/v/lazy-object-proxy.svg?style=flat
-            :alt: PyPI Package latest release
-            :target: https://pypi.python.org/pypi/lazy-object-proxy
-        
-        .. |downloads| image:: http://img.shields.io/pypi/dm/lazy-object-proxy.svg?style=flat
-            :alt: PyPI Package monthly downloads
-            :target: https://pypi.python.org/pypi/lazy-object-proxy
-        
-        .. |wheel| image:: https://pypip.in/wheel/lazy-object-proxy/badge.svg?style=flat
-            :alt: PyPI Wheel
-            :target: https://pypi.python.org/pypi/lazy-object-proxy
-        
-        .. |supported-versions| image:: https://pypip.in/py_versions/lazy-object-proxy/badge.svg?style=flat
-            :alt: Supported versions
-            :target: https://pypi.python.org/pypi/lazy-object-proxy
-        
-        .. |supported-implementations| image:: https://pypip.in/implementation/lazy-object-proxy/badge.svg?style=flat
-            :alt: Supported implementations
-            :target: https://pypi.python.org/pypi/lazy-object-proxy
-        
-        .. |scrutinizer| image:: https://img.shields.io/scrutinizer/g/ionelmc/python-lazy-object-proxy/master.svg?style=flat
-            :alt: Scrutinizer Status
-            :target: https://scrutinizer-ci.com/g/ionelmc/python-lazy-object-proxy/
         
         A fast and thorough lazy object proxy.
         
@@ -105,6 +45,12 @@ Description: ===============================
         Changelog
         =========
         
+        1.2.2 (2016-04-14)
+        ------------------
+        
+        * Added `manylinux <https://www.python.org/dev/peps/pep-0513/>`_ wheels.
+        * Minor cleanup in readme.
+        
         1.2.1 (2015-08-18)
         ------------------
         
@@ -142,6 +88,7 @@ Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.3
 Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Utilities
diff --git a/README.rst b/README.rst
index f74c9db..d31886c 100644
--- a/README.rst
+++ b/README.rst
@@ -1,6 +1,8 @@
-===============================
-lazy-object-proxy
-===============================
+========
+Overview
+========
+
+.. start-badges
 
 .. list-table::
     :stub-columns: 1
@@ -8,31 +10,33 @@ lazy-object-proxy
     * - docs
       - |docs|
     * - tests
-      - | |travis| |appveyor|
-        | |coveralls| |codecov| |landscape| |scrutinizer|
+      - | |travis| |appveyor| |requires|
+        | |coveralls| |codecov|
+        | |landscape| |scrutinizer| |codacy| |codeclimate|
     * - package
-      - |version| |downloads|
-
-..
-    |wheel| |supported-versions| |supported-implementations|
+      - |version| |downloads| |wheel| |supported-versions| |supported-implementations|
 
 .. |docs| image:: https://readthedocs.org/projects/python-lazy-object-proxy/badge/?style=flat
     :target: https://readthedocs.org/projects/python-lazy-object-proxy
     :alt: Documentation Status
 
-.. |travis| image:: http://img.shields.io/travis/ionelmc/python-lazy-object-proxy/master.svg?style=flat&label=Travis
+.. |travis| image:: https://travis-ci.org/ionelmc/python-lazy-object-proxy.svg?branch=master
     :alt: Travis-CI Build Status
     :target: https://travis-ci.org/ionelmc/python-lazy-object-proxy
 
-.. |appveyor| image:: https://img.shields.io/appveyor/ci/ionelmc/python-lazy-object-proxy/master.svg?style=flat&label=AppVeyor
+.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/ionelmc/python-lazy-object-proxy?branch=master&svg=true
     :alt: AppVeyor Build Status
     :target: https://ci.appveyor.com/project/ionelmc/python-lazy-object-proxy
 
-.. |coveralls| image:: http://img.shields.io/coveralls/ionelmc/python-lazy-object-proxy/master.svg?style=flat&label=Coveralls
+.. |requires| image:: https://requires.io/github/ionelmc/python-lazy-object-proxy/requirements.svg?branch=master
+    :alt: Requirements Status
+    :target: https://requires.io/github/ionelmc/python-lazy-object-proxy/requirements/?branch=master
+
+.. |coveralls| image:: https://coveralls.io/repos/ionelmc/python-lazy-object-proxy/badge.svg?branch=master&service=github
     :alt: Coverage Status
     :target: https://coveralls.io/r/ionelmc/python-lazy-object-proxy
 
-.. |codecov| image:: http://img.shields.io/codecov/c/github/ionelmc/python-lazy-object-proxy/master.svg?style=flat&label=Codecov
+.. |codecov| image:: https://codecov.io/github/ionelmc/python-lazy-object-proxy/coverage.svg?branch=master
     :alt: Coverage Status
     :target: https://codecov.io/github/ionelmc/python-lazy-object-proxy
 
@@ -40,23 +44,31 @@ lazy-object-proxy
     :target: https://landscape.io/github/ionelmc/python-lazy-object-proxy/master
     :alt: Code Quality Status
 
-.. |version| image:: http://img.shields.io/pypi/v/lazy-object-proxy.svg?style=flat
+.. |codacy| image:: https://img.shields.io/codacy/REPLACE_WITH_PROJECT_ID.svg?style=flat
+    :target: https://www.codacy.com/app/ionelmc/python-lazy-object-proxy
+    :alt: Codacy Code Quality Status
+
+.. |codeclimate| image:: https://codeclimate.com/github/ionelmc/python-lazy-object-proxy/badges/gpa.svg
+   :target: https://codeclimate.com/github/ionelmc/python-lazy-object-proxy
+   :alt: CodeClimate Quality Status
+
+.. |version| image:: https://img.shields.io/pypi/v/lazy-object-proxy.svg?style=flat
     :alt: PyPI Package latest release
     :target: https://pypi.python.org/pypi/lazy-object-proxy
 
-.. |downloads| image:: http://img.shields.io/pypi/dm/lazy-object-proxy.svg?style=flat
+.. |downloads| image:: https://img.shields.io/pypi/dm/lazy-object-proxy.svg?style=flat
     :alt: PyPI Package monthly downloads
     :target: https://pypi.python.org/pypi/lazy-object-proxy
 
-.. |wheel| image:: https://pypip.in/wheel/lazy-object-proxy/badge.svg?style=flat
+.. |wheel| image:: https://img.shields.io/pypi/wheel/lazy-object-proxy.svg?style=flat
     :alt: PyPI Wheel
     :target: https://pypi.python.org/pypi/lazy-object-proxy
 
-.. |supported-versions| image:: https://pypip.in/py_versions/lazy-object-proxy/badge.svg?style=flat
+.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/lazy-object-proxy.svg?style=flat
     :alt: Supported versions
     :target: https://pypi.python.org/pypi/lazy-object-proxy
 
-.. |supported-implementations| image:: https://pypip.in/implementation/lazy-object-proxy/badge.svg?style=flat
+.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/lazy-object-proxy.svg?style=flat
     :alt: Supported implementations
     :target: https://pypi.python.org/pypi/lazy-object-proxy
 
@@ -64,6 +76,9 @@ lazy-object-proxy
     :alt: Scrutinizer Status
     :target: https://scrutinizer-ci.com/g/ionelmc/python-lazy-object-proxy/
 
+
+.. end-badges
+
 A fast and thorough lazy object proxy.
 
 * Free software: BSD license
diff --git a/appveyor.yml b/appveyor.yml
index 76a695f..8130a39 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,97 +1,139 @@
 version: '{branch}-{build}'
 build: off
+cache:
+  - '%LOCALAPPDATA%\pip\Cache'
 environment:
   global:
-    WITH_COMPILER: "cmd /E:ON /V:ON /C .\\ci\\appveyor-with-compiler.cmd"
+    WITH_COMPILER: 'cmd /E:ON /V:ON /C .\ci\appveyor-with-compiler.cmd'
   matrix:
     - TOXENV: check
-      PYTHON_HOME: "C:\\Python27"
-      PYTHON_VERSION: "2.7"
-      PYTHON_ARCH: "32"
-    - TOXENV: "2.7"
-      TOXPYTHON: "C:\\Python27\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.0"
-      PYTHON_HOME: "C:\\Python27"
-      PYTHON_VERSION: "2.7"
-      PYTHON_ARCH: "32"
-    - TOXENV: "2.7"
-      TOXPYTHON: "C:\\Python27-x64\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.0"
-      PYTHON_HOME: "C:\\Python27-x64"
-      PYTHON_VERSION: "2.7"
-      PYTHON_ARCH: "64"
-    - TOXENV: "2.7-nocover"
-      TOXPYTHON: "C:\\Python27\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.0"
-      PYTHON_HOME: "C:\\Python27"
-      PYTHON_VERSION: "2.7"
-      PYTHON_ARCH: "32"
-    - TOXENV: "2.7-nocover"
-      TOXPYTHON: "C:\\Python27-x64\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.0"
-      PYTHON_HOME: "C:\\Python27-x64"
-      PYTHON_VERSION: "2.7"
-      PYTHON_ARCH: "64"
-    - TOXENV: "3.3"
-      TOXPYTHON: "C:\\Python33\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.1"
-      PYTHON_HOME: "C:\\Python33"
-      PYTHON_VERSION: "3.3"
-      PYTHON_ARCH: "32"
-    - TOXENV: "3.3"
-      TOXPYTHON: "C:\\Python33-x64\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.1"
-      PYTHON_HOME: "C:\\Python33-x64"
-      PYTHON_VERSION: "3.3"
-      PYTHON_ARCH: "64"
-    - TOXENV: "3.3-nocover"
-      TOXPYTHON: "C:\\Python33\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.1"
-      PYTHON_HOME: "C:\\Python33"
-      PYTHON_VERSION: "3.3"
-      PYTHON_ARCH: "32"
-    - TOXENV: "3.3-nocover"
-      TOXPYTHON: "C:\\Python33-x64\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.1"
-      PYTHON_HOME: "C:\\Python33-x64"
-      PYTHON_VERSION: "3.3"
-      PYTHON_ARCH: "64"
-    - TOXENV: "3.4"
-      TOXPYTHON: "C:\\Python34\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.1"
-      PYTHON_HOME: "C:\\Python34"
-      PYTHON_VERSION: "3.4"
-      PYTHON_ARCH: "32"
-    - TOXENV: "3.4"
-      TOXPYTHON: "C:\\Python34-x64\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.1"
-      PYTHON_HOME: "C:\\Python34-x64"
-      PYTHON_VERSION: "3.4"
-      PYTHON_ARCH: "64"
-    - TOXENV: "3.4-nocover"
-      TOXPYTHON: "C:\\Python34\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.1"
-      PYTHON_HOME: "C:\\Python34"
-      PYTHON_VERSION: "3.4"
-      PYTHON_ARCH: "32"
-    - TOXENV: "3.4-nocover"
-      TOXPYTHON: "C:\\Python34-x64\\python.exe"
-      WINDOWS_SDK_VERSION: "v7.1"
-      PYTHON_HOME: "C:\\Python34-x64"
-      PYTHON_VERSION: "3.4"
-      PYTHON_ARCH: "64"
+      PYTHON_HOME: C:\Python27
+      PYTHON_VERSION: '2.7'
+      PYTHON_ARCH: '32'
+
+    - TOXENV: '2.7-cover,codecov'
+      TOXPYTHON: C:\Python27\python.exe
+      PYTHON_HOME: C:\Python27
+      PYTHON_VERSION: '2.7'
+      PYTHON_ARCH: '32'
+
+    - TOXENV: '2.7-cover,codecov'
+      TOXPYTHON: C:\Python27-x64\python.exe
+      WINDOWS_SDK_VERSION: v7.0
+      PYTHON_HOME: C:\Python27-x64
+      PYTHON_VERSION: '2.7'
+      PYTHON_ARCH: '64'
+
+    - TOXENV: '2.7-nocov'
+      TOXPYTHON: C:\Python27\python.exe
+      PYTHON_HOME: C:\Python27
+      PYTHON_VERSION: '2.7'
+      PYTHON_ARCH: '32'
+
+    - TOXENV: '2.7-nocov'
+      TOXPYTHON: C:\Python27-x64\python.exe
+      WINDOWS_SDK_VERSION: v7.0
+      PYTHON_HOME: C:\Python27-x64
+      PYTHON_VERSION: '2.7'
+      PYTHON_ARCH: '64'
+
+    - TOXENV: '3.3-cover,codecov'
+      TOXPYTHON: C:\Python33\python.exe
+      PYTHON_HOME: C:\Python33
+      PYTHON_VERSION: '3.3'
+      PYTHON_ARCH: '32'
+
+    - TOXENV: '3.3-cover,codecov'
+      TOXPYTHON: C:\Python33-x64\python.exe
+      WINDOWS_SDK_VERSION: v7.1
+      PYTHON_HOME: C:\Python33-x64
+      PYTHON_VERSION: '3.3'
+      PYTHON_ARCH: '64'
+
+    - TOXENV: '3.3-nocov'
+      TOXPYTHON: C:\Python33\python.exe
+      PYTHON_HOME: C:\Python33
+      PYTHON_VERSION: '3.3'
+      PYTHON_ARCH: '32'
+
+    - TOXENV: '3.3-nocov'
+      TOXPYTHON: C:\Python33-x64\python.exe
+      WINDOWS_SDK_VERSION: v7.1
+      PYTHON_HOME: C:\Python33-x64
+      PYTHON_VERSION: '3.3'
+      PYTHON_ARCH: '64'
+
+    - TOXENV: '3.4-cover,codecov'
+      TOXPYTHON: C:\Python34\python.exe
+      PYTHON_HOME: C:\Python34
+      PYTHON_VERSION: '3.4'
+      PYTHON_ARCH: '32'
+
+    - TOXENV: '3.4-cover,codecov'
+      TOXPYTHON: C:\Python34-x64\python.exe
+      WINDOWS_SDK_VERSION: v7.1
+      PYTHON_HOME: C:\Python34-x64
+      PYTHON_VERSION: '3.4'
+      PYTHON_ARCH: '64'
+
+    - TOXENV: '3.4-nocov'
+      TOXPYTHON: C:\Python34\python.exe
+      PYTHON_HOME: C:\Python34
+      PYTHON_VERSION: '3.4'
+      PYTHON_ARCH: '32'
+
+    - TOXENV: '3.4-nocov'
+      TOXPYTHON: C:\Python34-x64\python.exe
+      WINDOWS_SDK_VERSION: v7.1
+      PYTHON_HOME: C:\Python34-x64
+      PYTHON_VERSION: '3.4'
+      PYTHON_ARCH: '64'
+
+    - TOXENV: '3.5-cover,codecov'
+      TOXPYTHON: C:\Python35\python.exe
+      PYTHON_HOME: C:\Python35
+      PYTHON_VERSION: '3.5'
+      PYTHON_ARCH: '32'
+
+    - TOXENV: '3.5-cover,codecov'
+      TOXPYTHON: C:\Python35-x64\python.exe
+      PYTHON_HOME: C:\Python35-x64
+      PYTHON_VERSION: '3.5'
+      PYTHON_ARCH: '64'
+
+    - TOXENV: '3.5-nocov'
+      TOXPYTHON: C:\Python35\python.exe
+      PYTHON_HOME: C:\Python35
+      PYTHON_VERSION: '3.5'
+      PYTHON_ARCH: '32'
+
+    - TOXENV: '3.5-nocov'
+      TOXPYTHON: C:\Python35-x64\python.exe
+      PYTHON_HOME: C:\Python35-x64
+      PYTHON_VERSION: '3.5'
+      PYTHON_ARCH: '64'
+
 init:
-  - "ECHO %TOXENV%"
-  - ps: "ls C:\\Python*"
+  - ps: echo $env:TOXENV
+  - ps: ls C:\Python*
 install:
-  - "powershell ci\\appveyor-bootstrap.ps1"
+  - python -u ci\appveyor-bootstrap.py
+  - '%PYTHON_HOME%\Scripts\virtualenv --version'
+  - '%PYTHON_HOME%\Scripts\easy_install --version'
+  - '%PYTHON_HOME%\Scripts\pip --version'
+  - '%PYTHON_HOME%\Scripts\tox --version'
 test_script:
-  - "%PYTHON_HOME%\\Scripts\\tox --version"
-  - "%PYTHON_HOME%\\Scripts\\virtualenv --version"
-  - "%PYTHON_HOME%\\Scripts\\pip --version"
-  - "%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\tox"
+  - '%WITH_COMPILER% %PYTHON_HOME%\Scripts\tox'
+
 after_test:
-  - "IF \"%TOXENV:~-8,8%\" == \"-nocover\" %WITH_COMPILER% %TOXPYTHON% setup.py bdist_wheel"
+  - IF "%TOXENV:~-6,6%" == "-nocov" %WITH_COMPILER% %TOXPYTHON% setup.py bdist_wheel
+
+on_failure:
+  - ps: dir "env:"
+  - ps: get-content .tox\*\log\*
 artifacts:
   - path: dist\*
 
+### To enable remote debugging uncomment this (also, see: http://www.appveyor.com/docs/how-to/rdp-to-build-worker):
+# on_finish:
+#   - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
diff --git a/ci/appveyor-bootstrap.ps1 b/ci/appveyor-bootstrap.ps1
deleted file mode 100644
index 1dd5342..0000000
--- a/ci/appveyor-bootstrap.ps1
+++ /dev/null
@@ -1,88 +0,0 @@
-# Source: https://github.com/pypa/python-packaging-user-guide/blob/master/source/code/install.ps1
-# Sample script to install Python and pip under Windows
-# Authors: Olivier Grisel and Kyle Kastner
-# License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
-
-$BASE_URL = "https://www.python.org/ftp/python/"
-$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py"
-$GET_PIP_PATH = "C:\get-pip.py"
-
-
-function DownloadPython ($python_version, $platform_suffix) {
-    $webclient = New-Object System.Net.WebClient
-    $filename = "python-" + $python_version + $platform_suffix + ".msi"
-    $url = $BASE_URL + $python_version + "/" + $filename
-
-    $basedir = $pwd.Path + "\"
-    $filepath = $basedir + $filename
-    if (Test-Path $filename) {
-        Write-Host "Reusing" $filepath
-        return $filepath
-    }
-
-    # Download and retry up to 5 times in case of network transient errors.
-    Write-Host "Downloading" $filename "from" $url
-    $retry_attempts = 3
-    for($i=0; $i -lt $retry_attempts; $i++){
-        try {
-            $webclient.DownloadFile($url, $filepath)
-            break
-        }
-        Catch [Exception]{
-            Start-Sleep 1
-        }
-   }
-   Write-Host "File saved at" $filepath
-   return $filepath
-}
-
-
-function InstallPython ($python_version, $architecture, $python_home) {
-    Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home
-    if (Test-Path $python_home) {
-        Write-Host $python_home "already exists, skipping."
-        return $false
-    }
-    if ($architecture -eq "32") {
-        $platform_suffix = ""
-    } else {
-        $platform_suffix = ".amd64"
-    }
-    $filepath = DownloadPython $python_version $platform_suffix
-    Write-Host "Installing" $filepath "to" $python_home
-    $args = "/qn /i $filepath TARGETDIR=$python_home"
-    Write-Host "msiexec.exe" $args
-    Start-Process -FilePath "msiexec.exe" -ArgumentList $args -Wait -Passthru
-    Write-Host "Python $python_version ($architecture) installation complete"
-    return $true
-}
-
-
-function InstallPip ($python_home) {
-    $pip_path = $python_home + "/Scripts/pip.exe"
-    $python_path = $python_home + "/python.exe"
-    if (-not(Test-Path $pip_path)) {
-        Write-Host "Installing pip..."
-        $webclient = New-Object System.Net.WebClient
-        $webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH)
-        Write-Host "Executing:" $python_path $GET_PIP_PATH
-        Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru
-    } else {
-        Write-Host "pip already installed."
-    }
-}
-
-function InstallPackage ($python_home, $pkg) {
-    $pip_path = $python_home + "/Scripts/pip.exe"
-    & $pip_path install $pkg
-}
-
-function main () {
-    InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON_HOME
-    InstallPip $env:PYTHON_HOME
-    InstallPackage $env:PYTHON_HOME setuptools
-    InstallPackage $env:PYTHON_HOME wheel
-    InstallPackage $env:PYTHON_HOME tox
-}
-
-main
diff --git a/ci/appveyor-bootstrap.py b/ci/appveyor-bootstrap.py
new file mode 100644
index 0000000..bc351bc
--- /dev/null
+++ b/ci/appveyor-bootstrap.py
@@ -0,0 +1,117 @@
+"""
+AppVeyor will at least have few Pythons around so there's no point of implementing a bootstrapper in PowerShell.
+
+This is a port of https://github.com/pypa/python-packaging-user-guide/blob/master/source/code/install.ps1
+with various fixes and improvements that just weren't feasible to implement in PowerShell.
+"""
+from __future__ import print_function
+from os import environ
+from os.path import exists
+from subprocess import check_call
+
+try:
+    from urllib.request import urlretrieve
+except ImportError:
+    from urllib import urlretrieve
+
+BASE_URL = "https://www.python.org/ftp/python/"
+GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py"
+GET_PIP_PATH = "C:\get-pip.py"
+URLS = {
+    ("2.6", "64"): BASE_URL + "2.6.6/python-2.6.6.amd64.msi",
+    ("2.6", "32"): BASE_URL + "2.6.6/python-2.6.6.msi",
+    ("2.7", "64"): BASE_URL + "2.7.10/python-2.7.10.amd64.msi",
+    ("2.7", "32"): BASE_URL + "2.7.10/python-2.7.10.msi",
+    # NOTE: no .msi installer for 3.3.6
+    ("3.3", "64"): BASE_URL + "3.3.3/python-3.3.3.amd64.msi",
+    ("3.3", "32"): BASE_URL + "3.3.3/python-3.3.3.msi",
+    ("3.4", "64"): BASE_URL + "3.4.3/python-3.4.3.amd64.msi",
+    ("3.4", "32"): BASE_URL + "3.4.3/python-3.4.3.msi",
+    ("3.5", "64"): BASE_URL + "3.5.0/python-3.5.0-amd64.exe",
+    ("3.5", "32"): BASE_URL + "3.5.0/python-3.5.0.exe",
+}
+INSTALL_CMD = {
+    # Commands are allowed to fail only if they are not the last command.  Eg: uninstall (/x) allowed to fail.
+    "2.6": [["msiexec.exe", "/L*+!", "install.log", "/qn", "/x", "{path}"],
+            ["msiexec.exe", "/L*+!", "install.log", "/qn", "/i", "{path}", "TARGETDIR={home}"]],
+    "2.7": [["msiexec.exe", "/L*+!", "install.log", "/qn", "/x", "{path}"],
+            ["msiexec.exe", "/L*+!", "install.log", "/qn", "/i", "{path}", "TARGETDIR={home}"]],
+    "3.3": [["msiexec.exe", "/L*+!", "install.log", "/qn", "/x", "{path}"],
+            ["msiexec.exe", "/L*+!", "install.log", "/qn", "/i", "{path}", "TARGETDIR={home}"]],
+    "3.4": [["msiexec.exe", "/L*+!", "install.log", "/qn", "/x", "{path}"],
+            ["msiexec.exe", "/L*+!", "install.log", "/qn", "/i", "{path}", "TARGETDIR={home}"]],
+    "3.5": [["{path}", "/quiet", "TargetDir={home}"]],
+}
+
+
+def download_file(url, path):
+    print("Downloading: {} (into {})".format(url, path))
+    progress = [0, 0]
+
+    def report(count, size, total):
+        progress[0] = count * size
+        if progress[0] - progress[1] > 1000000:
+            progress[1] = progress[0]
+            print("Downloaded {:,}/{:,} ...".format(progress[1], total))
+
+    dest, _ = urlretrieve(url, path, reporthook=report)
+    return dest
+
+
+def install_python(version, arch, home):
+    print("Installing Python", version, "for", arch, "bit architecture to", home)
+    if exists(home):
+        return
+
+    path = download_python(version, arch)
+    print("Installing", path, "to", home)
+    success = False
+    for cmd in INSTALL_CMD[version]:
+        cmd = [part.format(home=home, path=path) for part in cmd]
+        print("Running:", " ".join(cmd))
+        try:
+            check_call(cmd)
+        except Exception as exc:
+            print("Failed command", cmd, "with:", exc)
+            if exists("install.log"):
+                with open("install.log") as fh:
+                    print(fh.read())
+        else:
+            success = True
+    if success:
+        print("Installation complete!")
+    else:
+        print("Installation failed")
+
+
+def download_python(version, arch):
+    for _ in range(3):
+        try:
+            return download_file(URLS[version, arch], "installer.exe")
+        except Exception as exc:
+            print("Failed to download:", exc)
+        print("Retrying ...")
+
+
+def install_pip(home):
+    pip_path = home + "/Scripts/pip.exe"
+    python_path = home + "/python.exe"
+    if exists(pip_path):
+        print("pip already installed.")
+    else:
+        print("Installing pip...")
+        download_file(GET_PIP_URL, GET_PIP_PATH)
+        print("Executing:", python_path, GET_PIP_PATH)
+        check_call([python_path, GET_PIP_PATH])
+
+
+def install_packages(home, *packages):
+    cmd = [home + "/Scripts/pip.exe", "install"]
+    cmd.extend(packages)
+    check_call(cmd)
+
+
+if __name__ == "__main__":
+    install_python(environ['PYTHON_VERSION'], environ['PYTHON_ARCH'], environ['PYTHON_HOME'])
+    install_pip(environ['PYTHON_HOME'])
+    install_packages(environ['PYTHON_HOME'], "setuptools>=18.0.1", "wheel", "tox", "virtualenv>=13.1.0")
diff --git a/ci/appveyor-download.py b/ci/appveyor-download.py
new file mode 100755
index 0000000..97e18a9
--- /dev/null
+++ b/ci/appveyor-download.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python
+"""
+Use the AppVeyor API to download Windows artifacts.
+
+Taken from: https://bitbucket.org/ned/coveragepy/src/tip/ci/download_appveyor.py
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://bitbucket.org/ned/coveragepy/src/default/NOTICE.txt
+"""
+from __future__ import unicode_literals
+
+import argparse
+import os
+import requests
+import zipfile
+
+
+def make_auth_headers():
+    """Make the authentication headers needed to use the Appveyor API."""
+    path = os.path.expanduser("~/.appveyor.token")
... 1292 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/lazy-object-proxy.git



More information about the Python-modules-commits mailing list