这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .authors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
github: dbast
- name: Conda Bot
email: 18747875+conda-bot@users.noreply.github.com
num_commits: 32
num_commits: 39
first_commit: 2022-01-17 20:22:29
github: conda-bot
aliases:
Expand All @@ -86,7 +86,7 @@
first_commit: 2022-02-17 10:23:53
- name: Daniel Holth
email: dholth@anaconda.com
num_commits: 26
num_commits: 31
first_commit: 2021-08-20 21:11:50
github: dholth
- name: Vadim Zayakin
Expand All @@ -102,7 +102,7 @@
first_commit: 2022-02-09 01:00:38
- name: Jannis Leidel
email: jannis@leidel.info
num_commits: 9
num_commits: 10
first_commit: 2021-09-17 21:51:27
github: jezdez
- name: Tobias "Tobi" Koch
Expand All @@ -122,7 +122,7 @@
- name: pre-commit-ci[bot]
email: 66853113+pre-commit-ci[bot]@users.noreply.github.com
github: pre-commit-ci[bot]
num_commits: 14
num_commits: 17
first_commit: 2023-01-20 04:55:56
- name: Justin Wood (Callek)
email: callek@gmail.com
Expand All @@ -131,6 +131,6 @@
github: callek
- name: jaimergp
email: jaimergp@users.noreply.github.com
num_commits: 2
num_commits: 4
first_commit: 2024-04-02 13:11:21
github: jaimergp
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
[//]: # (current developments)

## 2.4.0 (2024-10-08)

### Enhancements

* Expose API and CLI for which components will be listed as part of `cph list`. (#253)
* Allow `cph list` on remote `.conda` artifact URLs. (#252 via #254)

### Bug fixes

* Use force_zip64=True when directly creating .conda files. Allows >2GB
(compressed) size. (#248)
* Replace `.conda` or `.tar.bz2` extensions from end of string only instead of
`str.replace(...)` (#251)

### Other

* Improve type annotations on an internal function (#257)

### Contributors

* @conda-bot
* @dholth
* @jezdez
* @jaimergp
* @pre-commit-ci[bot]



## 2.3.0 (2024-06-05)

### Enhancements
Expand Down
1 change: 0 additions & 1 deletion conda.recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ test:
- pytest
- pytest-cov
- pytest-mock
- pytest-xprocess
imports:
- conda_package_handling
- conda_package_handling.api
Expand Down
20 changes: 0 additions & 20 deletions news/248-use-zip64

This file was deleted.

20 changes: 0 additions & 20 deletions news/251-extension-str-replace

This file was deleted.

19 changes: 0 additions & 19 deletions news/253-components-list

This file was deleted.

19 changes: 0 additions & 19 deletions news/254-list-remote

This file was deleted.

19 changes: 0 additions & 19 deletions news/improve-typing

This file was deleted.

8 changes: 7 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@
"myst-parser",
"mdit-py-plugins>=0.3.0",
],
"test": ["mock", "pytest", "pytest-cov", "pytest-mock", "pytest-xprocess", "bottle"],
"test": [
"mock",
"pytest",
"pytest-cov",
"pytest-mock",
"bottle",
],
},
)
2 changes: 1 addition & 1 deletion src/conda_package_handling/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "2.3.0"
__version__ = "2.4.0"
9 changes: 6 additions & 3 deletions src/conda_package_handling/conda_fmt.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,12 @@ def tell(self):
pkg_metadata = {"conda_pkg_format_version": CONDA_PACKAGE_FORMAT_VERSION}
conda_file.writestr("metadata.json", json.dumps(pkg_metadata))

components_files = (f"pkg-{file_id}.tar.zst", pkg_files), (
f"info-{file_id}.tar.zst",
info_files,
components_files = (
(f"pkg-{file_id}.tar.zst", pkg_files),
(
f"info-{file_id}.tar.zst",
info_files,
),
)

# put the info last, for parity with updated transmute.
Expand Down
90 changes: 51 additions & 39 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
from __future__ import annotations

import os
import shutil
import sys
import threading
import typing
import wsgiref.simple_server
from pathlib import Path
from textwrap import dedent
from typing import Any

import bottle
import pytest
from xprocess import ProcessStarter

if typing.TYPE_CHECKING:
import wsgiref.types # added in 3.11


@pytest.fixture(scope="function")
Expand Down Expand Up @@ -36,40 +43,45 @@ def return_to_saved_path():
return str(tmpdir)


datadir = Path(__file__).parent / "data"


@bottle.route("/<filename>", "GET")
def serve_file(filename):
mimetype = "auto"
# from https://repo.anaconda.com/ behavior:
if filename.endswith(".tar.bz2"):
mimetype = "application/x-tar"
elif filename.endswith(".conda"):
mimetype = "binary/octet-stream"
return bottle.static_file(filename, root=datadir.as_posix(), mimetype=mimetype)


class ServerThread(threading.Thread):
server: Any
app: Any


def get_server_thread():
"""
Return test server thread with additional .server, .app properties.

Call .start() to serve in the background.
"""
app: wsgiref.types.WSGIApplication = bottle.app()
server = wsgiref.simple_server.make_server("127.0.0.1", 0, app)
t = ServerThread(daemon=True, target=server.serve_forever)
t.app = app
t.server = server # server.application == app
return t


@pytest.fixture(scope="session")
def localserver(xprocess):
port = 8000
datadir = Path(__file__).parent / "data"

class Starter(ProcessStarter):
pattern = "Hit Ctrl-C to quit."
terminate_on_interrupt = True
timeout = 10
args = [
sys.executable,
"-u", # unbuffered
"-c",
# Adapted from conda-package-streaming/tests/server.py
dedent(
f"""
from bottle import route, run, static_file

@route("/<filename>", "GET")
def serve_file(filename):
mimetype = "auto"
# from https://repo.anaconda.com/ behavior:
if filename.endswith(".tar.bz2"):
mimetype = "application/x-tar"
elif filename.endswith(".conda"):
mimetype = "binary/octet-stream"
return static_file(filename, root="{datadir.as_posix()}", mimetype=mimetype)

run(port={port})
"""
),
]

pid, logfile = xprocess.ensure("bottle.server", Starter)
print("Logfile at", str(logfile))
yield f"http://localhost:{port}"
xprocess.getinfo("bottle.server").terminate()
def localserver():
thread = get_server_thread()
thread.start()
yield f"http://{thread.server.server_address[0]}:{thread.server.server_address[1]}"


if __name__ == "__main__":
bottle.run(port=8080)
6 changes: 5 additions & 1 deletion tests/test_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,9 @@ def test_extract_create(tmpdir):

with pytest.raises(ValueError):
CondaFormat_v2.create(
"", [], "", compressor=True, compression_tuple=("1", "2", "3") # type: ignore
"",
[],
"",
compressor=True,
compression_tuple=("1", "2", "3"), # type: ignore
)
Loading