add padding function to imgScalePadding()

This commit is contained in:
ton
2023-04-14 03:23:43 +00:00
parent c43d949309
commit 39b417dd94
15256 changed files with 525519 additions and 1048290 deletions

View File

@@ -1,29 +0,0 @@
BSD 3-Clause License
Copyright (c) 2022--2023, Scientific Python project
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -1,138 +0,0 @@
Metadata-Version: 2.1
Name: lazy_loader
Version: 0.2
Summary: lazy_loader
Author: Scientific Python Developers
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: pre-commit >= 3.1 ; extra == "lint"
Requires-Dist: pytest >= 7.2 ; extra == "test"
Requires-Dist: pytest-cov >= 4.0 ; extra == "test"
Project-URL: Home, https://scientific-python.org/specs/spec-0001/
Project-URL: Source, https://github.com/scientific-python/lazy_loader
Provides-Extra: lint
Provides-Extra: test
[![PyPI](https://img.shields.io/pypi/v/lazy_loader)](https://pypi.org/project/lazy_loader/)
[![Test status](https://github.com/scientific-python/lazy_loader/workflows/test/badge.svg?branch=main)](https://github.com/scientific-python/lazy_loader/actions?query=workflow%3A%22test%22)
[![Test coverage](https://codecov.io/gh/scientific-python/lazy_loader/branch/main/graph/badge.svg)](https://app.codecov.io/gh/scientific-python/lazy_loader/branch/main)
`lazy_loader` makes it easy to load subpackages and functions on demand.
## Motivation
1. Allow subpackages to be made visible to users without incurring import costs.
2. Allow external libraries to be imported only when used, improving import times.
For a more detailed discussion, see [the SPEC](https://scientific-python.org/specs/spec-0001/).
## Installation
```
pip install -U lazy_loader
```
## Usage
### Lazily load subpackages
Consider the `__init__.py` from [scikit-image](https://scikit-image.org):
```python
subpackages = [
...,
'filters',
...
]
import lazy_loader as lazy
__getattr__, __dir__, _ = lazy.attach(__name__, subpackages)
```
You can now do:
```python
import skimage as ski
ski.filters.gaussian(...)
```
The `filters` subpackages will only be loaded once accessed.
### Lazily load subpackages and functions
Consider `skimage/filters/__init__.py`:
```python
from ..util import lazy
__getattr__, __dir__, __all__ = lazy.attach(
__name__,
submodules=['rank'],
submod_attrs={
'_gaussian': ['gaussian', 'difference_of_gaussians'],
'edges': ['sobel', 'scharr', 'prewitt', 'roberts',
'laplace', 'farid']
}
)
```
The above is equivalent to:
```python
from . import rank
from ._gaussian import gaussian, difference_of_gaussians
from .edges import (sobel, scharr, prewitt, roberts,
laplace, farid)
```
Except that all subpackages (such as `rank`) and functions (such as `sobel`) are loaded upon access.
### Type checkers
Static type checkers and IDEs cannot infer type information from
lazily loaded imports. As a workaround you can load [type
stubs](https://mypy.readthedocs.io/en/stable/stubs.html) (`.pyi`
files) with `lazy.attach_stub`:
```python
import lazy_loader as lazy
__getattr__, __dir__, _ = lazy.attach_stub(__name__, "subpackages.pyi")
```
Note that, since imports are now defined in `.pyi` files, those
are not only necessary for type checking but also at runtime.
The SPEC [describes this workaround in more
detail](https://scientific-python.org/specs/spec-0001/#type-checkers).
### Early failure
With lazy loading, missing imports no longer fail upon loading the
library. During development and testing, you can set the `EAGER_IMPORT`
environment variable to disable lazy loading.
### External libraries
The `lazy.attach` function discussed above is used to set up package
internal imports.
Use `lazy.load` to lazily import external libraries:
```python
linalg = lazy.load('scipy.linalg') # `linalg` will only be loaded when accessed
```
You can also ask `lazy.load` to raise import errors as soon as it is called:
```
linalg = lazy.load('scipy.linalg', error_on_import=True)
```

View File

@@ -1,16 +0,0 @@
lazy_loader-0.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
lazy_loader-0.2.dist-info/LICENSE.md,sha256=eXtpN6T5doNu-7uzrjM9eGbdw-s8sVKXKyvjSNNSk3I,1539
lazy_loader-0.2.dist-info/METADATA,sha256=qq6D4s2l5jRdlrs1p0RKbcZ-vhnuDb1vf24iy2CRNL8,4075
lazy_loader-0.2.dist-info/RECORD,,
lazy_loader-0.2.dist-info/WHEEL,sha256=rSgq_JpHF9fHR1lx53qwg_1-2LypZE_qmcuXbVUq948,81
lazy_loader/__init__.py,sha256=EX180nB-JK8JDhTHfwDkGz8SfXvHY98_0F0t_I2hLxs,7825
lazy_loader/__pycache__/__init__.cpython-311.pyc,,
lazy_loader/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
lazy_loader/tests/__pycache__/__init__.cpython-311.pyc,,
lazy_loader/tests/__pycache__/test_lazy_loader.cpython-311.pyc,,
lazy_loader/tests/fake_pkg/__init__.py,sha256=NZHf5nw2Wp377am-Cn2ydPGi2OFa7zKz94yJZroeHzA,136
lazy_loader/tests/fake_pkg/__init__.pyi,sha256=TT-fZbbvqhQ5l1mY2_1dI-9TIQW8nIVScNkhdV9kNxE,33
lazy_loader/tests/fake_pkg/__pycache__/__init__.cpython-311.pyc,,
lazy_loader/tests/fake_pkg/__pycache__/some_func.cpython-311.pyc,,
lazy_loader/tests/fake_pkg/some_func.py,sha256=XV5KTyy9fEP5HtxKb0YbETymnrSWwV3cJ1u3-RiWBcw,74
lazy_loader/tests/test_lazy_loader.py,sha256=MzhYQeiehU2FD9e8XlLwZOOLt3zjjdxOOk_8lv5465k,4082

View File

@@ -1,4 +0,0 @@
Wheel-Version: 1.0
Generator: flit 3.8.0
Root-Is-Purelib: true
Tag: py3-none-any