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
1 change: 1 addition & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ jobs:
- "3.11"
- "3.12"
- "3.13"
- "3.14"

steps:
# https://github.com/actions/setup-python
Expand Down
7 changes: 7 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
* Tue Aug 11 2026 Satoru SATOH <satoru.satoh@gmail.com> - 0.16.0-1
- fix: add py3.14 and make it as default test target
- fix: [security][doc] related changes for the removal of pickle backend
- fix: [security] remove pickle backend loader and dumper
- fix; [ruff] correction for ISC004
- fix: [ruff] add copyright headers which were missing

* Mon Feb 16 2026 Satoru SATOH <satoru.satoh@gmail.com> - 0.15.1-1
- fix: [doc] disable the badge of scrutinizer as it does not look worked
- fix: [doc] add an extra empty line to avoid rst syntax error
Expand Down
1 change: 0 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,6 @@ and backends in charge are enabled and ready to use:

JSON, json, ``json`` (standard lib) or ``simplejson`` [#]_
Ini-like, ini, ``configparser`` (standard lib)
Pickle, pickle, ``pickle`` (standard lib)
XML, xml, ``ElementTree`` (standard lib)
Java properties [#]_ , properties, None (native implementation with standard lib)
B-sh, shellvars, None (native implementation with standard lib)
Expand Down
13 changes: 0 additions & 13 deletions docs/api/anyconfig.backend.pickle.rst

This file was deleted.

9 changes: 0 additions & 9 deletions docs/api/anyconfig.backend.pickle.stdlib.rst

This file was deleted.

1 change: 0 additions & 1 deletion docs/api/anyconfig.backend.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
anyconfig.backend.base
anyconfig.backend.ini
anyconfig.backend.json
anyconfig.backend.pickle
anyconfig.backend.properties
anyconfig.backend.python
anyconfig.backend.sh
Expand Down
1 change: 0 additions & 1 deletion docs/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,6 @@ and backends in charge are enabled and ready to use:

JSON, json, ``json`` (standard lib) or ``simplejson`` [#]_
Ini-like, ini, ``configparser`` (standard lib)
Pickle, pickle, ``pickle`` (standard lib)
XML, xml, ``ElementTree`` (standard lib)
Java properties [#]_ , properties, None (native implementation with standard lib)
B-sh, shellvars, None (native implementation with standard lib)
Expand Down
5 changes: 5 additions & 0 deletions pkg/package.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,11 @@ rm -frv docs/build/html/_sources
%endif

%changelog
* Tue Aug 11 2026 Satoru SATOH <satoru.satoh@gmail.com> - 0.16.0-1
- new upstream release
- security fix
- see NEWS fore more details

* Mon Feb 16 2026 Satoru SATOH <ssato@redhat.com> - 0.15.0-1
- new upstream release
- fix dependencies to deprecated python3-toml package
Expand Down
2 changes: 1 addition & 1 deletion src/anyconfig/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
)


__version__ = "0.15.1"
__version__ = "0.16.0"


def version() -> list[str]:
Expand Down
3 changes: 1 addition & 2 deletions src/anyconfig/backend/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from . import (
ini,
json,
pickle,
properties,
python,
sh,
Expand All @@ -24,7 +23,7 @@


PARSERS: ParserClssT = [
*ini.PARSERS, *json.PARSERS, *pickle.PARSERS, *properties.PARSERS,
*ini.PARSERS, *json.PARSERS, *properties.PARSERS,
*python.PARSERS, *sh.PARSERS, *xml.PARSERS,
]

Expand Down
20 changes: 0 additions & 20 deletions src/anyconfig/backend/pickle/__init__.py

This file was deleted.

58 changes: 0 additions & 58 deletions src/anyconfig/backend/pickle/stdlib.py

This file was deleted.

4 changes: 2 additions & 2 deletions src/anyconfig/cli/_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ def try_validate(cnf: api.InDataExT, args: argparse.Namespace) -> None:
msg_code = ("Validation succeeded", 0)
else:
msg_code = (
"Validation failed:"
f"{(os.linesep + ' ').join(errors)}",
("Validation failed:"
f"{(os.linesep + ' ').join(errors)}"),
1,
)

Expand Down
4 changes: 4 additions & 0 deletions src/anyconfig/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
#
# Copyright (C) 2026 Satoru SATOH <satoru.satoh gmail.com>
# SPDX-License-Identifier: MIT
#
"""Provide basic model objects."""
4 changes: 4 additions & 0 deletions src/anyconfig/schema/jsonschema/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
#
# Copyright (C) 2011 - 2026 Satoru SATOH <satoru.satoh gmail.com>
# SPDX-License-Identifier: MIT
#
"""jsonschema generator and validator."""
16 changes: 0 additions & 16 deletions tests/api/open/test_basics.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
"""Test cases for api.open."""
from __future__ import annotations

import pickle
import typing

import pytest
Expand All @@ -32,18 +31,3 @@
def test_open_text_io(ipath, exp, opts):
with TT.open(ipath, **opts) as inp:
assert LD.load(inp, **opts) == exp


def test_open_byte_io(tmp_path):
cnf = {"a": 1, "b": "b"}

path = tmp_path / "test.pickle"
pickle.dump(cnf, path.open(mode="wb"))

opts = {"ac_parser": "pickle"}

with TT.open(path, **opts) as fio:
assert fio.mode == "rb"
data: bytes = fio.read()

assert LD.loads(data, **opts) == cnf
Empty file.
1 change: 0 additions & 1 deletion tests/backend/dumpers/pickle/test_pickle_stdlib.py

This file was deleted.

Empty file.
1 change: 0 additions & 1 deletion tests/backend/loaders/pickle/test_pickle_stdlib.py

This file was deleted.

3 changes: 2 additions & 1 deletion tests/common/paths.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ def get_data(
) -> list[tuple[pathlib.Path, dict[str, pathlib.Path]]]:
# find the dir holding input data files.
pattern = "*.*"
if not any(x for x in topdir.iterdir() if x.is_file()):
if not any(x for x in topdir.iterdir()
if x.is_file() and x.suffix != ".pyc"):
pattern = "*/" + pattern

return sorted(
Expand Down
4 changes: 3 additions & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ envlist =
py311
py312
py313
py314
lint
type-check
min
Expand All @@ -20,7 +21,8 @@ python =
3.10: py310
3.11: py311
3.12: py312
3.13: py313, type-check, lint, plugins, min
3.13: py313
3.14: py314, type-check, lint, plugins, min

[flake8]
exclude = .git,.tox,dist,*egg,setup.py
Expand Down
Loading