Skip to content
Open
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
2 changes: 1 addition & 1 deletion .github/workflows/test-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- ["ubuntu", "ubuntu-latest"]
config:
# [Python version, visual name, tox env]
- ["3.13", "6.2 on py3.13", "py313-plone62"]
- ["3.14", "6.2 on py3.14", "py314-plone62"]
- ["3.10", "6.2 on py3.10", "py310-plone62"]

runs-on: ${{ matrix.os[1] }}
Expand Down
2 changes: 1 addition & 1 deletion .meta.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# See the inline comments on how to expand/tweak this configuration file
[meta]
template = "default"
commit-id = "2.3.2.dev0"
commit-id = "2.3.3.dev0"

[flake8]
extra_lines = """
Expand Down
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ repos:
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/pycqa/isort
rev: 7.0.0
rev: 8.0.1
hooks:
- id: isort
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 25.12.0
rev: 26.3.0
hooks:
- id: black
- repo: https://github.com/collective/zpretty
Expand Down Expand Up @@ -45,7 +45,7 @@ repos:
# """
##
- repo: https://github.com/codespell-project/codespell
rev: v2.4.1
rev: v2.4.2
hooks:
- id: codespell
additional_dependencies:
Expand Down
1 change: 1 addition & 0 deletions news/+meta.internal
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update configuration files, add Python 3.14 to testing matrix and announce Python 3.14 in Trove classifiers. @plone
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from pathlib import Path
from setuptools import setup


version = "6.2.0a2.dev0"

long_description = (
Expand All @@ -28,6 +27,7 @@
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
],
python_requires=">=3.10",
keywords="Plone CMF Python Zope CMS Webapplication",
Expand Down
8 changes: 3 additions & 5 deletions src/Products/CMFPlone/CatalogTool.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
import time
import urllib


logger = logging.getLogger("Plone")
try:
from plone.app.discussion.interfaces import DISCUSSION_ANNOTATION_KEY
Expand Down Expand Up @@ -510,10 +509,9 @@ def manage_catalogRebuild(self, RESPONSE=None, URL1=None):
elapse = time.time() - elapse
c_elapse = process_time() - c_elapse

msg = (
"Catalog Rebuilt\n"
"Total time: %s\n"
"Total CPU time: %s" % (repr(elapse), repr(c_elapse))
msg = "Catalog Rebuilt\nTotal time: {}\nTotal CPU time: {}".format(
repr(elapse),
repr(c_elapse),
)
logger.info(msg)

Expand Down
5 changes: 2 additions & 3 deletions src/Products/CMFPlone/MigrationTool.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import sys
import transaction


logger = logging.getLogger("plone.app.upgrade")
_upgradePaths = {}

Expand Down Expand Up @@ -332,7 +331,7 @@ def upgrade(self, REQUEST=None, dry_run=None, swallow_errors=True):
raise
except Exception:
logger.error(
"Exception was thrown while cataloging:" "\n", exc_info=True
"Exception was thrown while cataloging:\n", exc_info=True
)
if not swallow_errors:
raise
Expand All @@ -346,7 +345,7 @@ def upgrade(self, REQUEST=None, dry_run=None, swallow_errors=True):
raise
except Exception:
logger.error(
"Exception was thrown while updating " "role mappings",
"Exception was thrown while updating role mappings",
exc_info=True,
)
if not swallow_errors:
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/PasswordResetTool.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@

import datetime


module_security = ModuleSecurityInfo("Products.CMFPlone.PasswordResetTool")


Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/PloneBaseTool.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from zope.component import getMultiAdapter
from zope.interface import implementer


# getOAI() and getExprContext copied from CMF 1.5.1+cvs
# Copyright (c) 2002 Zope Corporation and Contributors. All Rights Reserved.
# ZPL 2.1
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/PloneBatch.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from zope.deprecation import moved


moved("plone.base.batch", "Version 7.0")
5 changes: 2 additions & 3 deletions src/Products/CMFPlone/PloneTool.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
import transaction
import warnings


_icons = {}

CEILING_DATE = DateTime(2500, 0) # never expires
Expand Down Expand Up @@ -467,7 +466,7 @@ def typesToList(self):

@security.public
def createBreadCrumbs(self, context, request=None):
# Returns a structure for the portal breadcumbs.
# Returns a structure for the portal breadcrumbs.
if request is None:
request = self.REQUEST
return utils.createBreadCrumbs(context, request)
Expand Down Expand Up @@ -572,7 +571,7 @@ def addPortalMessage(self, message, type="info", request=None):
# The arguments are:
# message: a string, with the text message you want to show,
# or a HTML fragment (see type='structure' below)
# type: optional, defaults to 'info'. The type determines how
# type: optional, defaults to 'info'. The type determines how
# the message will be rendered, as it is used to select
# the CSS class for the message. Predefined types are:
# 'info' - for informational messages
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/Portal.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
from zope.interface.interfaces import ComponentLookupError
from zope.traversing.interfaces import BeforeTraverseEvent


if bbb.HAS_ZSERVER:
from webdav.NullResource import NullResource

Expand Down
7 changes: 2 additions & 5 deletions src/Products/CMFPlone/RegistrationTool.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import random
import re


try:
# Products.MailHost has a patch to fix quoted-printable soft line breaks.
# See https://github.com/zopefoundation/Products.MailHost/issues/35
Expand Down Expand Up @@ -132,7 +131,7 @@ def _getValidEmailAddress(self, member):
# the template will be made with a blank To:, this is bad
if email is None:
msg = _(
"No email address is registered for member: " "${member_id}",
"No email address is registered for member: ${member_id}",
mapping={"member_id": member.getId()},
)
raise ValueError(msg)
Expand Down Expand Up @@ -195,9 +194,7 @@ def testPasswordValidity(self, password, confirm=None):
return err

if confirm is not None and confirm != password:
return _(
"Your password and confirmation did not match. " "Please try again."
)
return _("Your password and confirmation did not match. Please try again.")
return None

def pasValidation(self, property, password):
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/UnicodeSplitter/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import re


STOP_WORD = []

# Setting, adding langs.
Expand Down
1 change: 1 addition & 0 deletions src/Products/CMFPlone/UnicodeSplitter/splitter.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

Created by Mikio Hokari, CMScom and Manabu Terada, CMScom on 2009-09-30.
"""

from plone.i18n.normalizer.base import baseNormalize
from Products.CMFPlone.UnicodeSplitter.config import pattern
from Products.CMFPlone.UnicodeSplitter.config import pattern_g
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/WorkflowTool.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
from ZODB.POSException import ConflictError
from zope.component import getMultiAdapter


try:
multilingual_version = distribution("plone.app.multilingual").version
except PackageNotFoundError:
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import warnings
import zope.deferredimport


__version__ = metadata("Products.CMFPlone")["version"]

if __version__ < "7":
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/bbb.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from importlib.metadata import distribution
from importlib.metadata import PackageNotFoundError


HAS_ZSERVER = True
try:
dist = distribution("ZServer")
Expand Down
3 changes: 1 addition & 2 deletions src/Products/CMFPlone/browser/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@

import logging


try:
distribution("plone.volto")
HAS_VOLTO = True
Expand Down Expand Up @@ -246,7 +245,7 @@ def __call__(self):
# if it is because it is not installed until a plone site
# is created
if queryUtility(IKeyManager) is None:
LOGGER.info("CSRF protection disabled on initial site " "creation")
LOGGER.info("CSRF protection disabled on initial site creation")
else:
# we have a keymanager, check csrf protection manually now
checkCSRF(self.request)
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/author.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

import logging


logger = logging.getLogger("Plone")


Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/contact_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import logging
import warnings


try:
# Products.MailHost has a patch to fix quoted-printable soft line breaks.
# See https://github.com/zopefoundation/Products.MailHost/issues/35
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/icons.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import logging


logger = logging.getLogger(__name__)


Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/login/login.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@

import logging


logger = logging.getLogger(__name__)
# TODO: Scale down this list now that we've removed a lot of
# templates.
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/login/login_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

import logging


try:
# Products.MailHost has a patch to fix quoted-printable soft line breaks.
# See https://github.com/zopefoundation/Products.MailHost/issues/35
Expand Down
2 changes: 1 addition & 1 deletion src/Products/CMFPlone/browser/login/password_reset.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ def _auto_login(self, userid, password):
IStatusMessage(self.request).addStatusMessage(
_(
"password_reset_successful",
default="Password reset successful, " "you are logged in now!",
default="Password reset successful, you are logged in now!",
),
"info",
)
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/login/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import logging


logger = logging.getLogger(__name__)


Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/navtree.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
from zope.component import getUtility
from zope.interface import implementer


# Strategy objects for the navtree creation code. You can subclass these
# to expand the default navtree behaviour, and pass instances of your
# subclasses to buildFolderTree().
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/ploneview.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
from zope.interface import implementer
from zope.size import byteDisplay


_marker = []


Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/search.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import json
import re


_ = MessageFactory("plone")

# We should accept both a simple space, unicode u'\u0020 but also a
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/sendto.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

import logging


logger = logging.getLogger("Plone")


Expand Down
2 changes: 0 additions & 2 deletions src/Products/CMFPlone/browser/syndication/adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,6 @@ def _brains(self):
@adapter(IItem, IFeed)
@implementer(IFeedItem)
class BaseItem(BaseFeedData):

def __init__(self, context, feed):
self.context = context
self.feed = feed
Expand Down Expand Up @@ -273,7 +272,6 @@ def file_type(self):

@adapter(IDexterityContent, IFeed)
class DexterityItem(BaseItem):

file = None
field_name = ""

Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/browser/syndication/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from zope.component import getUtility
from zope.interface import implementer


FEED_SETTINGS_KEY = "syndication_settings"


Expand Down
2 changes: 1 addition & 1 deletion src/Products/CMFPlone/controlpanel/browser/filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class FilterControlPanel(controlpanel.RegistryEditForm):
id = "FilterControlPanel"
label = _("HTML Filtering Settings")
description = _(
"Keep in mind that editors like TinyMCE might have " "additional filters."
"Keep in mind that editors like TinyMCE might have additional filters."
)
schema = IFilterSchema
schema_prefix = "plone"
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/controlpanel/browser/imaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from plone.base import PloneMessageFactory as _
from plone.base.interfaces.controlpanel import IImagingSchema


log = getLogger("Plone")


Expand Down
2 changes: 1 addition & 1 deletion src/Products/CMFPlone/controlpanel/browser/language.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class LanguageControlPanelForm(controlpanel.RegistryEditForm):
label = _("heading_language_settings", default="Language Settings")
description = _(
"description_language_settings",
default="Settings related to interface languages and " "content translations.",
default="Settings related to interface languages and content translations.",
)

schema = ILanguageSchema
Expand Down
1 change: 0 additions & 1 deletion src/Products/CMFPlone/controlpanel/browser/mail.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import socket
import sys


log = getLogger("Plone")


Expand Down
Loading