Skip to content

Commit

Permalink
fix deprecation warnings and proper isort (#1606)
Browse files Browse the repository at this point in the history
* fix deprecation warnings and proper isort

* use latest Plone 6 release and make flake8 happy

* refactor uid_to_url to make it independent from implementation details of plone.app.uuid
  • Loading branch information
jensens committed Apr 1, 2023
1 parent b15ddc0 commit f90329d
Show file tree
Hide file tree
Showing 99 changed files with 373 additions and 236 deletions.
2 changes: 2 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ max-line-length = 100000
extend-ignore =
# See https://github.com/PyCQA/pycodestyle/issues/373
E203,
per-file-ignores =
src/plone/restapi/bbb.py:F401
2 changes: 2 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ jobs:
plone-version: '6.0'
- python-version: '3.10'
plone-version: '6.0'
- python-version: '3.11'
plone-version: '6.0'

steps:
# git checkout
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ docs/.DS_Store
/lib
/lib64
/local
/venv
/.mr.developer.cfg
*.mo
docs/_build
Expand Down
4 changes: 3 additions & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@
# All configuration values have a default; values that are commented out
# serve to show the default.

import datetime

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
# sys.path.insert(0, os.path.abspath("."))
import os
import sys
import datetime


sys.path.insert(0, os.path.abspath("../../"))

Expand Down
7 changes: 7 additions & 0 deletions news/1606.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Fix a bunch of deprecation warnings in a Plone 5.2 compatible way.
Applied propert isort.
Fixed unclosed file issues in a test.
Added Python 3.11 to test matrix.
[jensens]


4 changes: 3 additions & 1 deletion performance/images.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from locust import HttpUser, TaskSet, between
from locust import between
from locust import HttpUser
from locust import TaskSet


def image_01mb_get(self):
Expand Down
3 changes: 2 additions & 1 deletion performance/querystring-search.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from locust import HttpUser, task
from locust import HttpUser
from locust import task


class QuerystringSearchAnonymousUser(HttpUser):
Expand Down
2 changes: 1 addition & 1 deletion plone-6.0.x.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[buildout]
extends =
https://dist.plone.org/release/6.0.0/versions.cfg
https://dist.plone.org/release/6.0.3/versions.cfg
base.cfg

[buildout:python37]
Expand Down
2 changes: 1 addition & 1 deletion requirements-6.0.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
-r https://dist.plone.org/release/6.0.0/requirements.txt
-r https://dist.plone.org/release/6.0.3/requirements.txt
5 changes: 4 additions & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
[bdist_wheel]
# Do not make the generated wheels have `py2` tag
# See https://packaging.python.org/guides/dropping-older-python-versions/#dealing-with-the-universal-wheels
universal = 0
universal = 0

[isort]
profile = plone
5 changes: 4 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
from setuptools import setup, find_packages
from setuptools import find_packages
from setuptools import setup

import sys


version = "8.35.4.dev0"

assert sys.version_info >= (
Expand Down
39 changes: 39 additions & 0 deletions src/plone/restapi/bbb.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
try:
from plone.base.defaultpage import is_default_page
from plone.base.interfaces import IConstrainTypes
from plone.base.interfaces import IEditingSchema
from plone.base.interfaces import IImagingSchema
from plone.base.interfaces import ILanguage
from plone.base.interfaces import IMailSchema
from plone.base.interfaces import INavigationSchema
from plone.base.interfaces import INonInstallable
from plone.base.interfaces import INonStructuralFolder
from plone.base.interfaces import IPloneSiteRoot
from plone.base.interfaces import ISearchSchema
from plone.base.interfaces import ISecuritySchema
from plone.base.interfaces import ISelectableConstrainTypes
from plone.base.interfaces import ISiteSchema
from plone.base.utils import base_hasattr
from plone.base.utils import safe_callable
from plone.base.utils import safe_hasattr
from plone.base.utils import safe_text
except ImportError:
# BBB Plone 5.2
from Products.CMFPlone.defaultpage import is_default_page
from Products.CMFPlone.interfaces import IConstrainTypes
from Products.CMFPlone.interfaces import IEditingSchema
from Products.CMFPlone.interfaces import IImagingSchema
from Products.CMFPlone.interfaces import ILanguage
from Products.CMFPlone.interfaces import IMailSchema
from Products.CMFPlone.interfaces import INavigationSchema
from Products.CMFPlone.interfaces import INonInstallable
from Products.CMFPlone.interfaces import INonStructuralFolder
from Products.CMFPlone.interfaces import IPloneSiteRoot
from Products.CMFPlone.interfaces import ISearchSchema
from Products.CMFPlone.interfaces import ISecuritySchema
from Products.CMFPlone.interfaces import ISelectableConstrainTypes
from Products.CMFPlone.interfaces import ISiteSchema
from Products.CMFPlone.utils import base_hasattr
from Products.CMFPlone.utils import safe_callable
from Products.CMFPlone.utils import safe_hasattr
from Products.CMFPlone.utils import safe_text
4 changes: 2 additions & 2 deletions src/plone/restapi/controlpanels/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from zope.interface import implementer
from zope.publisher.interfaces import NotFound
from plone.restapi.controlpanels.interfaces import IControlpanel
from Products.CMFCore.utils import getToolByName
from zope.interface import implementer
from zope.publisher.interfaces import NotFound


@implementer(IControlpanel)
Expand Down
43 changes: 30 additions & 13 deletions src/plone/restapi/controlpanels/registry.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,37 @@
from importlib import import_module
from plone.restapi.controlpanels import RegistryConfigletPanel
from zope.component import adapter
from zope.globalrequest import getRequest
from zope.i18n import translate
from zope.interface import Interface
from zope.globalrequest import getRequest
from Products.CMFPlone.interfaces.controlpanel import IDateAndTimeSchema
from Products.CMFPlone.interfaces.controlpanel import IEditingSchema
from Products.CMFPlone.interfaces.controlpanel import IImagingSchema
from Products.CMFPlone.interfaces.controlpanel import IMailSchema
from Products.CMFPlone.interfaces.controlpanel import IMarkupSchema
from Products.CMFPlone.interfaces.controlpanel import INavigationSchema
from Products.CMFPlone.interfaces.controlpanel import ISearchSchema
from Products.CMFPlone.interfaces.controlpanel import ISecuritySchema
from Products.CMFPlone.interfaces.controlpanel import ISiteSchema
from Products.CMFPlone.interfaces.controlpanel import ISocialMediaSchema
from Products.CMFPlone.interfaces.controlpanel import IUserGroupsSettingsSchema
from plone.restapi.controlpanels import RegistryConfigletPanel


try:
from plone.base.interfaces.controlpanel import IDateAndTimeSchema
from plone.base.interfaces.controlpanel import IEditingSchema
from plone.base.interfaces.controlpanel import IImagingSchema
from plone.base.interfaces.controlpanel import IMailSchema
from plone.base.interfaces.controlpanel import IMarkupSchema
from plone.base.interfaces.controlpanel import INavigationSchema
from plone.base.interfaces.controlpanel import ISearchSchema
from plone.base.interfaces.controlpanel import ISecuritySchema
from plone.base.interfaces.controlpanel import ISiteSchema
from plone.base.interfaces.controlpanel import ISocialMediaSchema
from plone.base.interfaces.controlpanel import IUserGroupsSettingsSchema
except ImportError: # pragma: no cover
# Plone 5.2
from Products.CMFPlone.interfaces.controlpanel import IDateAndTimeSchema
from Products.CMFPlone.interfaces.controlpanel import IEditingSchema
from Products.CMFPlone.interfaces.controlpanel import IImagingSchema
from Products.CMFPlone.interfaces.controlpanel import IMailSchema
from Products.CMFPlone.interfaces.controlpanel import IMarkupSchema
from Products.CMFPlone.interfaces.controlpanel import INavigationSchema
from Products.CMFPlone.interfaces.controlpanel import ISearchSchema
from Products.CMFPlone.interfaces.controlpanel import ISecuritySchema
from Products.CMFPlone.interfaces.controlpanel import ISiteSchema
from Products.CMFPlone.interfaces.controlpanel import ISocialMediaSchema
from Products.CMFPlone.interfaces.controlpanel import IUserGroupsSettingsSchema


try:
from plone.i18n.interfaces import ILanguageSchema
Expand Down
15 changes: 8 additions & 7 deletions src/plone/restapi/controlpanels/rules.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
from plone.restapi.controlpanels import RegistryConfigletPanel
from plone.restapi.controlpanels.interfaces import IContentRulesControlpanel
from plone.restapi.deserializer import json_body
from plone.restapi.interfaces import IPloneRestapiLayer
from plone.restapi.interfaces import ISerializeToJson
from plone.restapi.serializer.controlpanels.rules import rule_schema_as_json
from z3c.form import interfaces
from zExceptions import BadRequest
from zope.component import adapter
from zope.component import queryMultiAdapter
from zope.interface import alsoProvides
from zope.interface import implementer
from zope.interface import Interface
from zope.publisher.interfaces.browser import IBrowserPublisher
from z3c.form import interfaces
from plone.restapi.interfaces import ISerializeToJson
from plone.restapi.interfaces import IPloneRestapiLayer
from plone.restapi.controlpanels import RegistryConfigletPanel
from plone.restapi.controlpanels.interfaces import IContentRulesControlpanel
from plone.restapi.deserializer import json_body
from plone.restapi.serializer.controlpanels.rules import rule_schema_as_json

import plone.protect.interfaces


Expand Down
17 changes: 9 additions & 8 deletions src/plone/restapi/controlpanels/types.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
from plone.i18n.normalizer import idnormalizer
from plone.restapi.controlpanels import RegistryConfigletPanel
from plone.restapi.controlpanels.interfaces import IDexterityTypesControlpanel
from plone.restapi.deserializer import json_body
from plone.restapi.interfaces import IDeserializeFromJson
from plone.restapi.interfaces import IPloneRestapiLayer
from plone.restapi.interfaces import ISerializeToJson
from zExceptions import BadRequest
from zope.component import adapter
from zope.component import queryMultiAdapter
from zope.interface import alsoProvides
from zope.interface import implementer
from zope.interface import Interface
from plone.i18n.normalizer import idnormalizer
from plone.restapi.interfaces import ISerializeToJson
from plone.restapi.interfaces import IDeserializeFromJson
from plone.restapi.deserializer import json_body
from plone.restapi.controlpanels import RegistryConfigletPanel
from plone.restapi.controlpanels.interfaces import IDexterityTypesControlpanel
import plone.protect.interfaces
from zope.interface import noLongerProvides
from plone.restapi.interfaces import IPloneRestapiLayer

import plone.protect.interfaces


@adapter(Interface, IPloneRestapiLayer)
Expand Down
2 changes: 1 addition & 1 deletion src/plone/restapi/deserializer/blocks.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from collections import deque
from copy import deepcopy
from plone import api
from plone.restapi.bbb import IPloneSiteRoot
from plone.restapi.behaviors import IBlocks
from plone.restapi.deserializer.dxfields import DefaultFieldDeserializer
from plone.restapi.deserializer.utils import path2uid
from plone.restapi.interfaces import IBlockFieldDeserializationTransformer
from plone.restapi.interfaces import IFieldDeserializer
from plone.schema import IJSONField
from Products.CMFPlone.interfaces import IPloneSiteRoot
from zope.component import adapter
from zope.component import subscribers
from zope.interface import implementer
Expand Down
3 changes: 2 additions & 1 deletion src/plone/restapi/deserializer/controlpanels/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
from plone.restapi.deserializer import json_body
from plone.restapi.deserializer.controlpanels import ControlpanelDeserializeFromJson
from plone.restapi.interfaces import IDeserializeFromJson
from zope.component import adapter, queryMultiAdapter
from zope.component import adapter
from zope.component import queryMultiAdapter
from zope.interface import implementer


Expand Down
2 changes: 1 addition & 1 deletion src/plone/restapi/deserializer/local_roles.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from AccessControl.interfaces import IRoleManager
from plone.restapi.bbb import IPloneSiteRoot
from plone.restapi.deserializer import json_body
from plone.restapi.interfaces import IDeserializeFromJson
from Products.CMFCore.interfaces import ICatalogAware
from Products.CMFPlone.interfaces import IPloneSiteRoot
from zope.component import adapter
from zope.component import getMultiAdapter
from zope.event import notify
Expand Down
2 changes: 1 addition & 1 deletion src/plone/restapi/deserializer/mixins.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from plone.folder.interfaces import IExplicitOrdering
from plone.restapi.bbb import IPloneSiteRoot
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.interfaces.siteroot import IPloneSiteRoot
from zExceptions import BadRequest


Expand Down
2 changes: 1 addition & 1 deletion src/plone/restapi/deserializer/site.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from importlib import import_module
from plone.restapi.bbb import IPloneSiteRoot
from plone.restapi.deserializer import json_body
from plone.restapi.deserializer.dxcontent import DeserializeFromJson
from plone.restapi.interfaces import IBlockFieldDeserializationTransformer
from plone.restapi.interfaces import IDeserializeFromJson
from Products.CMFPlone.interfaces import IPloneSiteRoot
from zope.component import adapter
from zope.component import subscribers
from zope.interface import implementer
Expand Down
2 changes: 1 addition & 1 deletion src/plone/restapi/imaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ def get_scale_infos():
from plone.registry.interfaces import IRegistry

registry = getUtility(IRegistry)
from Products.CMFPlone.interfaces import IImagingSchema
from plone.restapi.bbb import IImagingSchema

imaging_settings = registry.forInterface(IImagingSchema, prefix="plone")
allowed_sizes = imaging_settings.allowed_sizes
Expand Down
2 changes: 1 addition & 1 deletion src/plone/restapi/pas/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
from datetime import timedelta
from plone.keyring.interfaces import IKeyManager
from plone.keyring.keyring import GenerateSecret
from plone.restapi import exceptions
from plone.restapi import deserializer
from plone.restapi import exceptions
from Products.CMFCore.permissions import ManagePortal
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from Products.PluggableAuthService.interfaces.plugins import IAuthenticationPlugin
Expand Down
13 changes: 10 additions & 3 deletions src/plone/restapi/search/handler.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
from plone.registry.interfaces import IRegistry
from plone.restapi.bbb import ISearchSchema
from plone.restapi.interfaces import ISerializeToJson
from plone.restapi.interfaces import IZCatalogCompatibleQuery
from Products.CMFCore.utils import getToolByName
from Products.CMFPlone.browser.navtree import getNavigationRoot
from Products.CMFPlone.interfaces import ISearchSchema
from zope.component import getMultiAdapter
from zope.component import getUtility


try:
from plone.base.navigationroot import get_navigation_root
except ImportError:
from plone.app.layout.navigation.root import (
getNavigationRoot as get_navigation_root,
)


class SearchHandler:
"""Executes a catalog search based on a query dict, and returns
JSON compatible results.
Expand Down Expand Up @@ -116,7 +123,7 @@ def filter_query(self, query):

# respect navigation root
if "path" not in query:
query["path"] = {"query": getNavigationRoot(self.context)}
query["path"] = {"query": get_navigation_root(self.context)}

vhm_physical_path = self.request.get("VirtualRootPhysicalPath")
# if vhm trick is applied, we should present a stripped path, as it will be
Expand Down
4 changes: 2 additions & 2 deletions src/plone/restapi/serializer/blocks.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
from copy import deepcopy
from plone.restapi.bbb import IPloneSiteRoot
from plone.restapi.behaviors import IBlocks
from plone.restapi.deserializer.blocks import iterate_children
from plone.restapi.deserializer.blocks import SlateBlockTransformer
from plone.restapi.deserializer.blocks import transform_links
from plone.restapi.interfaces import IBlockFieldSerializationTransformer
Expand All @@ -8,14 +10,12 @@
from plone.restapi.serializer.dxfields import DefaultFieldSerializer
from plone.restapi.serializer.utils import uid_to_url
from plone.schema import IJSONField
from Products.CMFPlone.interfaces import IPloneSiteRoot
from zope.component import adapter
from zope.component import subscribers
from zope.globalrequest import getRequest
from zope.interface import implementer
from zope.interface import Interface
from zope.publisher.interfaces.browser import IBrowserRequest
from plone.restapi.deserializer.blocks import iterate_children

import copy
import os
Expand Down
1 change: 1 addition & 0 deletions src/plone/restapi/serializer/catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import logging


try:
from ZTUtils.Lazy import Lazy
except ImportError:
Expand Down

0 comments on commit f90329d

Please sign in to comment.