mirror of https://github.com/docker/docker-py.git
Merge remote-tracking branch 'upstream/main' into ruff-i
This commit is contained in:
commit
310d70e52a
|
@ -18,6 +18,19 @@ jobs:
|
|||
- name: Run ruff
|
||||
run: ruff docker tests
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- run: pip3 install build && python -m build .
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: dist
|
||||
path: dist
|
||||
|
||||
unit-tests:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
|
|
|
@ -26,11 +26,13 @@ jobs:
|
|||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Generate Pacakge
|
||||
- name: Generate Package
|
||||
run: |
|
||||
pip3 install setuptools wheel
|
||||
python setup.py sdist bdist_wheel
|
||||
pip3 install build
|
||||
python -m build .
|
||||
env:
|
||||
# This is also supported by Hatch; see
|
||||
# https://github.com/ofek/hatch-vcs#version-source-environment-variables
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_DOCKER: ${{ inputs.tag }}
|
||||
|
||||
- name: Publish to PyPI
|
||||
|
|
4
Makefile
4
Makefile
|
@ -1,5 +1,5 @@
|
|||
TEST_API_VERSION ?= 1.43
|
||||
TEST_ENGINE_VERSION ?= 24.0
|
||||
TEST_API_VERSION ?= 1.44
|
||||
TEST_ENGINE_VERSION ?= 25.0
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
PLATFORM := Windows
|
||||
|
|
|
@ -2,8 +2,8 @@ import sys
|
|||
|
||||
from .version import __version__
|
||||
|
||||
DEFAULT_DOCKER_API_VERSION = '1.43'
|
||||
MINIMUM_DOCKER_API_VERSION = '1.21'
|
||||
DEFAULT_DOCKER_API_VERSION = '1.44'
|
||||
MINIMUM_DOCKER_API_VERSION = '1.24'
|
||||
DEFAULT_TIMEOUT_SECONDS = 60
|
||||
STREAM_HEADER_SIZE_BYTES = 8
|
||||
CONTAINER_LIMITS_KEYS = [
|
||||
|
|
|
@ -1,8 +1,66 @@
|
|||
[build-system]
|
||||
requires = ["setuptools>=45", "setuptools_scm[toml]>=6.2"]
|
||||
requires = ["hatchling", "hatch-vcs"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.setuptools_scm]
|
||||
write_to = 'docker/_version.py'
|
||||
[project]
|
||||
name = "docker"
|
||||
dynamic = ["version"]
|
||||
description = "A Python library for the Docker Engine API."
|
||||
readme = "README.md"
|
||||
license = "Apache-2.0"
|
||||
requires-python = ">=3.8"
|
||||
maintainers = [
|
||||
{ name = "Docker Inc.", email = "no-reply@docker.com" },
|
||||
]
|
||||
classifiers = [
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"Environment :: Other Environment",
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: Apache Software License",
|
||||
"Operating System :: OS Independent",
|
||||
"Programming Language :: Python",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Topic :: Software Development",
|
||||
"Topic :: Utilities",
|
||||
]
|
||||
|
||||
dependencies = [
|
||||
"requests >= 2.26.0",
|
||||
"urllib3 >= 1.26.0",
|
||||
"pywin32>=304; sys_platform == \"win32\"",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
ssh = [
|
||||
"paramiko>=2.4.3",
|
||||
]
|
||||
tls = [] # kept for backwards compatibility
|
||||
websockets = [
|
||||
"websocket-client >= 1.3.0",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
Changelog = "https://docker-py.readthedocs.io/en/stable/change-log.html"
|
||||
Documentation = "https://docker-py.readthedocs.io"
|
||||
Homepage = "https://github.com/docker/docker-py"
|
||||
Source = "https://github.com/docker/docker-py"
|
||||
Tracker = "https://github.com/docker/docker-py/issues"
|
||||
|
||||
[tool.hatch.version]
|
||||
source = "vcs"
|
||||
|
||||
[tool.hatch.build.hooks.vcs]
|
||||
version-file = "docker/_version.py"
|
||||
|
||||
[tool.hatch.build.targets.sdist]
|
||||
include = [
|
||||
"/docker",
|
||||
]
|
||||
|
||||
[tool.ruff]
|
||||
target-version = "py38"
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
[metadata]
|
||||
description_file = README.rst
|
||||
license = Apache License 2.0
|
81
setup.py
81
setup.py
|
@ -1,81 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import codecs
|
||||
import os
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
ROOT_DIR = os.path.dirname(__file__)
|
||||
SOURCE_DIR = os.path.join(ROOT_DIR)
|
||||
|
||||
requirements = [
|
||||
'requests >= 2.26.0',
|
||||
'urllib3 >= 1.26.0',
|
||||
]
|
||||
|
||||
extras_require = {
|
||||
# win32 APIs if on Windows (required for npipe support)
|
||||
':sys_platform == "win32"': 'pywin32>=304',
|
||||
|
||||
# This is now a no-op, as similarly the requests[security] extra is
|
||||
# a no-op as of requests 2.26.0, this is always available/by default now
|
||||
# see https://github.com/psf/requests/pull/5867
|
||||
'tls': [],
|
||||
|
||||
# Only required when connecting using the ssh:// protocol
|
||||
'ssh': ['paramiko>=2.4.3'],
|
||||
|
||||
# Only required when using websockets
|
||||
'websockets': ['websocket-client >= 1.3.0'],
|
||||
}
|
||||
|
||||
with open('./test-requirements.txt') as test_reqs_txt:
|
||||
test_requirements = list(test_reqs_txt)
|
||||
|
||||
|
||||
long_description = ''
|
||||
with codecs.open('./README.md', encoding='utf-8') as readme_md:
|
||||
long_description = readme_md.read()
|
||||
|
||||
setup(
|
||||
name="docker",
|
||||
use_scm_version={
|
||||
'write_to': 'docker/_version.py'
|
||||
},
|
||||
description="A Python library for the Docker Engine API.",
|
||||
long_description=long_description,
|
||||
long_description_content_type='text/markdown',
|
||||
url='https://github.com/docker/docker-py',
|
||||
project_urls={
|
||||
'Documentation': 'https://docker-py.readthedocs.io',
|
||||
'Changelog': 'https://docker-py.readthedocs.io/en/stable/change-log.html',
|
||||
'Source': 'https://github.com/docker/docker-py',
|
||||
'Tracker': 'https://github.com/docker/docker-py/issues',
|
||||
},
|
||||
packages=find_packages(exclude=["tests.*", "tests"]),
|
||||
setup_requires=['setuptools_scm'],
|
||||
install_requires=requirements,
|
||||
tests_require=test_requirements,
|
||||
extras_require=extras_require,
|
||||
python_requires='>=3.8',
|
||||
zip_safe=False,
|
||||
test_suite='tests',
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Other Environment',
|
||||
'Intended Audience :: Developers',
|
||||
'Operating System :: OS Independent',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
'Programming Language :: Python :: 3.12',
|
||||
'Topic :: Software Development',
|
||||
'Topic :: Utilities',
|
||||
'License :: OSI Approved :: Apache Software License',
|
||||
],
|
||||
maintainer='Docker, Inc.',
|
||||
maintainer_email='no-reply@docker.com',
|
||||
)
|
|
@ -1,7 +1,7 @@
|
|||
# syntax=docker/dockerfile:1
|
||||
|
||||
ARG API_VERSION=1.43
|
||||
ARG ENGINE_VERSION=24.0
|
||||
ARG API_VERSION=1.44
|
||||
ARG ENGINE_VERSION=25.0
|
||||
|
||||
FROM docker:${ENGINE_VERSION}-dind
|
||||
|
||||
|
|
|
@ -109,12 +109,12 @@ class ContainerCollectionTest(BaseIntegrationTest):
|
|||
client.networks.create(net_name)
|
||||
self.tmp_networks.append(net_name)
|
||||
|
||||
test_aliases = ['hello']
|
||||
test_alias = 'hello'
|
||||
test_driver_opt = {'key1': 'a'}
|
||||
|
||||
networking_config = {
|
||||
net_name: client.api.create_endpoint_config(
|
||||
aliases=test_aliases,
|
||||
aliases=[test_alias],
|
||||
driver_opt=test_driver_opt
|
||||
)
|
||||
}
|
||||
|
@ -131,8 +131,10 @@ class ContainerCollectionTest(BaseIntegrationTest):
|
|||
assert 'NetworkSettings' in attrs
|
||||
assert 'Networks' in attrs['NetworkSettings']
|
||||
assert list(attrs['NetworkSettings']['Networks'].keys()) == [net_name]
|
||||
assert attrs['NetworkSettings']['Networks'][net_name]['Aliases'] == \
|
||||
test_aliases
|
||||
# Expect Aliases to list 'test_alias' and the container's short-id.
|
||||
# In API version 1.45, the short-id will be removed.
|
||||
assert attrs['NetworkSettings']['Networks'][net_name]['Aliases'] \
|
||||
== [test_alias, attrs['Id'][:12]]
|
||||
assert attrs['NetworkSettings']['Networks'][net_name]['DriverOpts'] \
|
||||
== test_driver_opt
|
||||
|
||||
|
@ -189,7 +191,9 @@ class ContainerCollectionTest(BaseIntegrationTest):
|
|||
assert 'NetworkSettings' in attrs
|
||||
assert 'Networks' in attrs['NetworkSettings']
|
||||
assert list(attrs['NetworkSettings']['Networks'].keys()) == [net_name]
|
||||
assert attrs['NetworkSettings']['Networks'][net_name]['Aliases'] is None
|
||||
# Aliases should include the container's short-id (but it will be removed
|
||||
# in API v1.45).
|
||||
assert attrs['NetworkSettings']['Networks'][net_name]['Aliases'] == [attrs["Id"][:12]]
|
||||
assert (attrs['NetworkSettings']['Networks'][net_name]['DriverOpts']
|
||||
is None)
|
||||
|
||||
|
|
Loading…
Reference in New Issue