Skip to content
Snippets Groups Projects
Commit dc7a586f authored by Sandro Tosi's avatar Sandro Tosi
Browse files

New upstream version 1.5.1

parent 845f534d
No related branches found
No related tags found
No related merge requests found
......@@ -127,15 +127,6 @@ init:
- ps: echo $env:TOXENV
- ps: ls C:\Python*
install:
- ps: |
Set-PSDebug -Trace 1
if ($Env:TOXENV.StartsWith("py38")) {
if ($Env:PYTHON_ARCH -eq "64") {
iex "choco install python3 --version=3.8 --no-progress --params /InstallDir:$Env:PYTHON_HOME"
} else {
iex "choco install python3 --version=3.8 --no-progress --params /InstallDir:$Env:PYTHON_HOME --x86"
}
}
- '%PYTHON_HOME%\python -mpip install --progress-bar=off twine tox-wheel -rci/requirements.txt'
- '%PYTHON_HOME%\Scripts\virtualenv --version'
- '%PYTHON_HOME%\Scripts\easy_install --version'
......
[bumpversion]
current_version = 1.5.0
current_version = 1.5.1
commit = True
tag = True
......
......@@ -4,6 +4,7 @@ cookiecutter:
_extensions:
- jinja2_time.TimeExtension
_template: /home/ionel/open-source/cookiecutter-pylibrary
allow_tests_inside_package: no
appveyor: yes
c_extension_function: '-'
c_extension_module: '-'
......@@ -26,10 +27,14 @@ cookiecutter:
license: BSD 2-Clause License
linter: flake8
package_name: lazy_object_proxy
pre_commit: yes
project_name: lazy-object-proxy
project_short_description: A fast and thorough lazy object proxy.
release_date: '2019-05-10'
repo_hosting: github
pypi_badge: yes
pypi_disable_upload: no
release_date: '2020-06-05'
repo_hosting: github.com
repo_hosting_domain: github.com
repo_name: python-lazy-object-proxy
repo_username: ionelmc
requiresio: yes
......@@ -37,6 +42,7 @@ cookiecutter:
setup_py_uses_setuptools_scm: yes
setup_py_uses_test_runner: no
sphinx_docs: yes
sphinx_docs_hosting: https://python-lazy-object-proxy.readthedocs.io/
sphinx_doctest: no
sphinx_theme: sphinx-py3doc-enhanced-theme
test_matrix_configurator: no
......@@ -44,7 +50,7 @@ cookiecutter:
test_runner: pytest
travis: yes
travis_osx: yes
version: 1.4.1
version: 1.5.0
website: https://blog.ionelmc.ro
year_from: '2014'
year_to: '2019'
year_to: '2020'
......@@ -11,3 +11,6 @@ charset = utf-8
[*.{bat,cmd,ps1}]
end_of_line = crlf
[*.{yml,yaml}]
indent_size = 2
# To install the git pre-commit hook run:
# pre-commit install
# To update the pre-commit hooks run:
# pre-commit install-hooks
exclude: '^(.tox|ci/templates|.bumpversion.cfg)(/|$)'
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: master
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: debug-statements
- repo: https://github.com/timothycrosley/isort
rev: master
hooks:
- id: isort
- repo: https://gitlab.com/pycqa/flake8
rev: master
hooks:
- id: flake8
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
version: 2
sphinx:
configuration: docs/conf.py
formats: all
python:
install:
- requirements: docs/requirements.txt
- method: pip
path: .
language: python
dist: xenial
cache: false
env:
global:
- LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
- LD_PRELOAD=libSegFault.so
- SEGFAULT_SIGNALS=all
- LANG=en_US.UTF-8
- TWINE_USERNAME=ionel
matrix:
include:
......@@ -15,77 +14,112 @@ matrix:
env:
- TOXENV=docs
- os: osx
osx_image: xcode11
language: generic
env:
- TOXENV=py27-cover
- env:
- TOXENV=py27-cover,codecov,extension-coveralls,coveralls
python: '2.7'
arch: arm64
- env:
- TOXENV=py27-cover,codecov,extension-coveralls,coveralls
python: '2.7'
arch: amd64
- os: osx
osx_image: xcode11
language: generic
env:
- TOXENV=py27-nocov
- WHEEL_PATH=.tox/dist
- env:
- TOXENV=py27-nocov
- WHEEL_MANYLINUX1=cp27
- WHEEL_PATH=wheelhouse
- WHEEL_MANYLINUX="1 cp27"
python: '2.7'
arch: amd64
- env:
- TOXENV=py35-cover,codecov,extension-coveralls,coveralls
python: '3.5'
arch: arm64
- env:
- TOXENV=py35-cover,codecov,extension-coveralls,coveralls
python: '3.5'
arch: amd64
- env:
- TOXENV=py35-nocov
- WHEEL_MANYLINUX1=cp35
- WHEEL_PATH=wheelhouse
- WHEEL_MANYLINUX="2014-arm cp35"
python: '3.5'
arch: arm64
- env:
- TOXENV=py35-nocov
- WHEEL_MANYLINUX="1 cp35"
python: '3.5'
arch: amd64
- env:
- TOXENV=py36-cover,codecov,extension-coveralls,coveralls
python: '3.6'
arch: arm64
- env:
- TOXENV=py36-cover,codecov,extension-coveralls,coveralls
python: '3.6'
arch: amd64
- env:
- TOXENV=py36-nocov
- WHEEL_MANYLINUX1=cp36
- WHEEL_PATH=wheelhouse
- WHEEL_MANYLINUX="2014-arm cp36"
python: '3.6'
- os: osx
language: generic
env:
- TOXENV=py37-cover
arch: arm64
- env:
- TOXENV=py36-nocov
- WHEEL_MANYLINUX="1 cp36"
python: '3.6'
arch: amd64
- env:
- TOXENV=py37-cover,codecov,extension-coveralls,coveralls
python: '3.7'
- os: osx
language: generic
env:
arch: arm64
- env:
- TOXENV=py37-cover,codecov,extension-coveralls,coveralls
python: '3.7'
arch: amd64
- env:
- TOXENV=py37-nocov
- WHEEL_PATH=.tox/dist
- WHEEL_MANYLINUX="2014-arm cp37"
python: '3.7'
arch: arm64
- env:
- TOXENV=py37-nocov
- WHEEL_MANYLINUX1=cp37
- WHEEL_PATH=wheelhouse
- WHEEL_MANYLINUX="1 cp37"
python: '3.7'
arch: amd64
- os: osx
osx_image: xcode11
language: generic
env:
- TOXENV=py38-cover
- env:
- TOXENV=py38-cover,codecov,extension-coveralls,coveralls
python: '3.8'
arch: arm64
- env:
- TOXENV=py38-nocov
- WHEEL_MANYLINUX1=cp38
- WHEEL_PATH=wheelhouse
- TOXENV=py38-cover,codecov,extension-coveralls,coveralls
python: '3.8'
arch: amd64
- os: osx
osx_image: xcode11
language: generic
env:
- TOXENV=py38-nocov
- WHEEL_PATH=.tox/dist
- env:
- TOXENV=pypy-cover,codecov,extension-coveralls,coveralls
python: 'pypy'
- env:
- TOXENV=pypy-nocov
python: 'pypy'
- env:
- TOXENV=pypy3-cover,codecov,extension-coveralls,coveralls
- TOXPYTHON=pypy3
python: 'pypy3'
- TOXENV=py38-nocov
- WHEEL_MANYLINUX="2014-arm cp38"
python: '3.8'
arch: arm64
- env:
- TOXENV=pypy3-nocov
- TOXPYTHON=pypy3
python: 'pypy3'
- TOXENV=py38-nocov
- WHEEL_MANYLINUX="1 cp38"
python: '3.8'
arch: amd64
before_install:
- python --version
- uname -a
......@@ -107,9 +141,10 @@ script:
- |
(
set -eux
if [[ -n ${WHEEL_MANYLINUX1:-} ]]; then
docker run --rm --user $UID -itv $(pwd):/code ionelmc/manylinux $WHEEL_MANYLINUX1
tox --installpkg $WHEEL_PATH/*.whl -v
if [[ -n ${WHEEL_MANYLINUX:-} ]]; then
docker run --rm --user $UID -v $(pwd):/code ionelmc/manylinux:manylinux$WHEEL_MANYLINUX
tox --installpkg wheelhouse/*.whl -v
export WHEEL_PATH=wheelhouse
else
tox -v
fi
......@@ -118,8 +153,8 @@ script:
fi
)
after_failure:
- more .tox/log/* | cat
- more .tox/*/log/* | cat
- cat .tox/log/*
- cat .tox/*/log/*
notifications:
email:
on_success: never
......
......@@ -2,6 +2,11 @@
Changelog
=========
1.5.1 (2020-07-22)
------------------
* Added ARM64 wheels (manylinux2014).
1.5.0 (2020-06-05)
------------------
......
......@@ -41,7 +41,7 @@ To set up `python-lazy-object-proxy` for local development:
(look for the "Fork" button).
2. Clone your fork locally::
git clone git@github.com:ionelmc/python-lazy-object-proxy.git
git clone git@github.com:YOURGITHUBNAME/python-lazy-object-proxy.git
3. Create a branch for local development::
......
Metadata-Version: 1.2
Name: lazy-object-proxy
Version: 1.5.0
Version: 1.5.1
Summary: A fast and thorough lazy object proxy.
Home-page: https://github.com/ionelmc/python-lazy-object-proxy
Author: Ionel Cristian Mărieș
......@@ -74,6 +74,11 @@ Description: ========
Changelog
=========
1.5.1 (2020-07-22)
------------------
* Added ARM64 wheels (manylinux2014).
1.5.0 (2020-06-05)
------------------
......@@ -166,4 +171,4 @@ Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
......@@ -35,7 +35,7 @@ Overview
:alt: Coverage Status
:target: https://coveralls.io/r/ionelmc/python-lazy-object-proxy
.. |codecov| image:: https://codecov.io/github/ionelmc/python-lazy-object-proxy/coverage.svg?branch=master
.. |codecov| image:: https://codecov.io/gh/ionelmc/python-lazy-object-proxy/branch/master/graphs/badge.svg?branch=master
:alt: Coverage Status
:target: https://codecov.io/github/ionelmc/python-lazy-object-proxy
......@@ -43,10 +43,6 @@ Overview
:alt: PyPI Package latest release
:target: https://pypi.org/project/lazy-object-proxy
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-lazy-object-proxy/v1.5.0.svg
:alt: Commits since latest release
:target: https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.5.0...master
.. |wheel| image:: https://img.shields.io/pypi/wheel/lazy-object-proxy.svg
:alt: PyPI Wheel
:target: https://pypi.org/project/lazy-object-proxy
......@@ -59,6 +55,11 @@ Overview
:alt: Supported implementations
:target: https://pypi.org/project/lazy-object-proxy
.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-lazy-object-proxy/v1.5.1.svg
:alt: Commits since latest release
:target: https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.5.1...master
.. end-badges
......
......@@ -47,6 +47,7 @@ def exec_in_env():
print("+ exec", python_executable, __file__, "--no-env")
os.execv(python_executable, [python_executable, __file__, "--no-env"])
def main():
import jinja2
......@@ -86,4 +87,3 @@ if __name__ == "__main__":
else:
print("Unexpected arguments {0}".format(args), file=sys.stderr)
sys.exit(1)
virtualenv>=16.6.0
pip>=19.1.1
setuptools>=18.0.1
six>=1.14.0
......@@ -13,8 +13,7 @@ environment:
PYTHON_ARCH: '32'
{% for env in tox_environments %}
{% if env.startswith(('py2', 'py3')) %}
- TOXENV: {{ env }}{% if env.endswith('-cover') %},codecov,coveralls{% endif %}
- TOXENV: {{ env }}{% if env.endswith('-cover') %},codecov,coveralls{% endif %}{{ "" }}
TOXPYTHON: C:\Python{{ env[2:4] }}\python.exe
PYTHON_HOME: C:\Python{{ env[2:4] }}
PYTHON_VERSION: '{{ env[2] }}.{{ env[3] }}'
......@@ -22,8 +21,7 @@ environment:
{% if 'nocov' in env %}
WHEEL_PATH: .tox/dist
{% endif %}
- TOXENV: {{ env }}{% if env.endswith('-cover') %},codecov,coveralls{% endif %}
- TOXENV: {{ env }}{% if env.endswith('-cover') %},codecov,coveralls{% endif %}{{ "" }}
TOXPYTHON: C:\Python{{ env[2:4] }}-x64\python.exe
PYTHON_HOME: C:\Python{{ env[2:4] }}-x64
PYTHON_VERSION: '{{ env[2] }}.{{ env[3] }}'
......@@ -31,23 +29,14 @@ environment:
{% if 'nocov' in env %}
WHEEL_PATH: .tox/dist
{% endif %}
{% if env.startswith(('py2', 'py34')) %}
WINDOWS_SDK_VERSION: v7.{{ '1' if env.startswith('py3') else '0' }}
{% if env.startswith('py2') %}
WINDOWS_SDK_VERSION: v7.0
{% endif %}
{% endif %}{% endfor %}
init:
- ps: echo $env:TOXENV
- ps: ls C:\Python*
install:
- ps: |
Set-PSDebug -Trace 1
if ($Env:TOXENV.StartsWith("py38")) {
if ($Env:PYTHON_ARCH -eq "64") {
iex "choco install python3 --version=3.8 --no-progress --params /InstallDir:$Env:PYTHON_HOME"
} else {
iex "choco install python3 --version=3.8 --no-progress --params /InstallDir:$Env:PYTHON_HOME --x86"
}
}
- '%PYTHON_HOME%\python -mpip install --progress-bar=off twine tox-wheel -rci/requirements.txt'
- '%PYTHON_HOME%\Scripts\virtualenv --version'
- '%PYTHON_HOME%\Scripts\easy_install --version'
......
language: python
dist: xenial
cache: false
env:
global:
- LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
- LD_PRELOAD=libSegFault.so
- SEGFAULT_SIGNALS=all
- LANG=en_US.UTF-8
- TWINE_USERNAME=ionel
matrix:
include:
......@@ -15,8 +14,9 @@ matrix:
env:
- TOXENV=docs
{%- for env in tox_environments %}{{ '' }}
{%- if 'py37' in env or 'py27' in env %}{{ '' }}
{%- if 'py38' in env or 'py27' in env %}{{ '' }}
- os: osx
osx_image: xcode11
language: generic
env:
- TOXENV={{ env }}
......@@ -24,11 +24,14 @@ matrix:
- WHEEL_PATH=.tox/dist
{%- endif %}
{%- endif %}{{ '' }}
{%- for arch in ['arm64', 'amd64'] %}{{ '' }}
{%- if 'pypy' not in env and (arch == 'amd64' or env.startswith('py3') or 'cover' in env) %}{{ '' }}
- env:
- TOXENV={{ env }}{% if 'cover' in env %},codecov,extension-coveralls,coveralls{% endif %}
{%- if 'pypy' not in env and 'nocov' in env %}{{ '' }}
- WHEEL_MANYLINUX1=cp{{ env.split('-')[0][2:] }}
- WHEEL_PATH=wheelhouse
- WHEEL_MANYLINUX="{% if arch == 'arm64' %}2014-arm{% else %}1{% endif %}{{ '' }} cp{{ env.split('-')[0][2:] }}"
{%- elif 'pypy' not in env and 'nocov' in env %}{{ '' }}
- WHEEL_PATH=.tox/dist
{%- endif %}
{%- if env.startswith('pypy3') %}{{ '' }}
- TOXPYTHON=pypy3
......@@ -37,7 +40,10 @@ matrix:
python: 'pypy'
{%- else %}{{ '' }}
python: '{{ '{0[2]}.{0[3]}'.format(env) }}'
{%- endif %}
{%- endif %}{{ '' }}
arch: {{ arch }}
{%- endif %}{{ '' }}
{%- endfor %}{{ '' }}
{%- endfor %}{{ '' }}
before_install:
- python --version
......@@ -60,9 +66,10 @@ script:
- |
(
set -eux
if [[ -n ${WHEEL_MANYLINUX1:-} ]]; then
docker run --rm --user $UID -itv $(pwd):/code ionelmc/manylinux $WHEEL_MANYLINUX1
tox --installpkg $WHEEL_PATH/*.whl -v
if [[ -n ${WHEEL_MANYLINUX:-} ]]; then
docker run --rm --user $UID -v $(pwd):/code ionelmc/manylinux:manylinux$WHEEL_MANYLINUX
tox --installpkg wheelhouse/*.whl -v
export WHEEL_PATH=wheelhouse
else
tox -v
fi
......@@ -71,8 +78,8 @@ script:
fi
)
after_failure:
- more .tox/log/* | cat
- more .tox/*/log/* | cat
- cat .tox/log/*
- cat .tox/*/log/*
notifications:
email:
on_success: never
......
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os
import traceback
import sphinx_py3doc_enhanced_theme
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.autosummary',
......@@ -15,15 +16,10 @@ extensions = [
'sphinx.ext.todo',
'sphinx.ext.viewcode',
]
if os.getenv('SPELLCHECK'):
extensions += 'sphinxcontrib.spelling',
spelling_show_suggestions = True
spelling_lang = 'en_US'
source_suffix = '.rst'
master_doc = 'index'
project = 'lazy-object-proxy'
year = '2014-2019'
year = '2014-2020'
author = 'Ionel Cristian Mărieș'
copyright = '{0}, {1}'.format(year, author)
try:
......@@ -31,7 +27,7 @@ try:
version = release = get_distribution('lazy_object_proxy').version
except Exception:
traceback.print_exc()
version = release = '1.5.0'
version = release = '1.5.1'
pygments_style = 'trac'
templates_path = ['.']
......@@ -39,7 +35,6 @@ extlinks = {
'issue': ('https://github.com/ionelmc/python-lazy-object-proxy/issues/%s', '#'),
'pr': ('https://github.com/ionelmc/python-lazy-object-proxy/pull/%s', 'PR #'),
}
import sphinx_py3doc_enhanced_theme
html_theme = "sphinx_py3doc_enhanced_theme"
html_theme_path = [sphinx_py3doc_enhanced_theme.get_html_theme_path()]
html_theme_options = {
......
[build-system]
requires = ["setuptools>=30.3.0", "wheel", "setuptools_scm>=3.3.1"]
requires = [
"setuptools>=30.3.0",
"wheel",
"setuptools_scm>=3.3.1",
]
......@@ -4,7 +4,7 @@ setup_requires =
[flake8]
max-line-length = 140
exclude = */migrations/*
exclude = .tox,.eggs,ci/templates
[tool:pytest]
norecursedirs =
......@@ -31,6 +31,8 @@ addopts =
--doctest-modules
--doctest-glob=\*.rst
--tb=short
testpaths =
tests
[tool:isort]
force_single_line = True
......@@ -39,7 +41,7 @@ known_first_party = lazy_object_proxy
default_section = THIRDPARTY
forced_separate = test_lazy_object_proxy
not_skip = __init__.py
skip = migrations
skip = .tox,.eggs,ci/templates
[egg_info]
tag_build =
......
setup.py 100644 → 100755
......@@ -19,24 +19,15 @@ from setuptools import find_packages
from setuptools import setup
from setuptools.command.build_ext import build_ext
def read(*names, **kwargs):
with io.open(
join(dirname(__file__), *names),
encoding=kwargs.get('encoding', 'utf8')
) as fh:
return fh.read()
# Enable code coverage for C code: we can't use CFLAGS=-coverage in tox.ini, since that may mess with compiling
# dependencies (e.g. numpy). Therefore we set SETUPPY_CFLAGS=-coverage in tox.ini and copy it to CFLAGS here (after
# deps have been safely installed).
if 'TOXENV' in os.environ and os.environ.get('SETUPPY_GCOV') == 'enabled' and platform.system() == 'Linux':
CFLAGS = ['-fprofile-arcs', '-ftest-coverage']
LFLAGS = ['-lgcov']
if 'TOX_ENV_NAME' in os.environ and os.environ.get('SETUP_PY_EXT_COVERAGE') == 'yes' and platform.system() == 'Linux':
CFLAGS = os.environ['CFLAGS'] = '-fprofile-arcs -ftest-coverage'
LFLAGS = os.environ['LFLAGS'] = '-lgcov'
else:
CFLAGS = []
LFLAGS = []
CFLAGS = ''
LFLAGS = ''
class optional_build_ext(build_ext):
......@@ -63,12 +54,20 @@ class optional_build_ext(build_ext):
print('*' * 80)
def read(*names, **kwargs):
with io.open(
join(dirname(__file__), *names),
encoding=kwargs.get('encoding', 'utf8')
) as fh:
return fh.read()
setup(
name='lazy-object-proxy',
use_scm_version={
'local_scheme': 'dirty-tag',
'write_to': 'src/lazy_object_proxy/_version.py',
'fallback_version': '1.5.0',
'fallback_version': '1.5.1',
},
license='BSD-2-Clause',
description='A fast and thorough lazy object proxy.',
......@@ -115,7 +114,7 @@ setup(
keywords=[
# eg: 'keyword1', 'keyword2', 'keyword3',
],
python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',
install_requires=[
# eg: 'aspectlib==1.1.1', 'six>=1.7',
],
......@@ -129,8 +128,8 @@ setup(
Extension(
splitext(relpath(path, 'src').replace(os.sep, '.'))[0],
sources=[path],
extra_compile_args=CFLAGS,
extra_link_args=LFLAGS,
extra_compile_args=CFLAGS.split(),
extra_link_args=LFLAGS.split(),
include_dirs=[dirname(path)]
)
for root, _, _ in os.walk('src')
......
Metadata-Version: 1.2
Name: lazy-object-proxy
Version: 1.5.0
Version: 1.5.1
Summary: A fast and thorough lazy object proxy.
Home-page: https://github.com/ionelmc/python-lazy-object-proxy
Author: Ionel Cristian Mărieș
......@@ -74,6 +74,11 @@ Description: ========
Changelog
=========
1.5.1 (2020-07-22)
------------------
* Added ARM64 wheels (manylinux2014).
1.5.0 (2020-06-05)
------------------
......@@ -166,4 +171,4 @@ Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment