Skip to content
This repository has been archived by the owner on Apr 9, 2023. It is now read-only.

Commit

Permalink
fix imports, delay app_settings with module/class/interface settings
Browse files Browse the repository at this point in the history
  • Loading branch information
vangheem committed Jan 19, 2017
1 parent 3640cb8 commit ad55fec
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 51 deletions.
30 changes: 0 additions & 30 deletions src/plone.server/plone/server/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,8 @@

# load the patch before anything else.
from plone.server import patch # noqa

from plone.server import interfaces
from plone.server import languages

# load defined migrations
from plone.server.migrate import migrations # noqa
from zope.i18nmessageid import MessageFactory

import collections
import logging

# create logging
Expand All @@ -37,29 +30,6 @@
"plone.server.auth.validators.SaltedHashPasswordValidator",
"plone.server.auth.validators.JWTValidator"
],
"default_layers": [
interfaces.IDefaultLayer
],
"http_methods": {
"PUT": interfaces.IPUT,
"POST": interfaces.IPOST,
"PATCH": interfaces.IPATCH,
"DELETE": interfaces.IDELETE,
"GET": interfaces.IGET,
"OPTIONS": interfaces.IOPTIONS,
"HEAD": interfaces.IHEAD,
"CONNECT": interfaces.ICONNECT
},
"renderers": collections.OrderedDict({
"application/json": interfaces.IRendererFormatJson,
"text/html": interfaces.IRendererFormatHtml,
"*/*": interfaces.IRendererFormatRaw
}),
"languages": {
"en": languages.IEN,
"en-us": languages.IENUS,
"ca": languages.ICA
},
"default_permission": 'zope.Public',
"available_addons": {},
"api_definition": {},
Expand Down
13 changes: 0 additions & 13 deletions src/plone.server/plone/server/behaviors/dublincore.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,16 @@
from datetime import datetime
from dateutil.tz import tzlocal
from dateutil.tz import tzutc
from plone.server import app_settings
from plone.server import configure
from plone.server.behaviors.properties import ContextProperty
from plone.server.directives import index
from plone.server.interfaces import IFormFieldProvider
from plone.server.interfaces import IResource
from plone.server.languages import _languagelist
from zope.component import adapter
from zope.dublincore.annotatableadapter import ZDCAnnotatableAdapter
from zope.dublincore.interfaces import IWriteZopeDublinCore
from zope.interface import Interface
from zope.interface import provider
from zope.schema.vocabulary import SimpleTerm
from zope.schema.vocabulary import SimpleVocabulary


OPTIONS = [
SimpleTerm(value=_languagelist[l]['native'],
token=l,
title=_languagelist[l]['name'])
for l in app_settings['languages'].keys() if l in _languagelist
]
language_vocabulary = SimpleVocabulary(OPTIONS)
_zone = tzlocal()
_utc = tzutc()

Expand Down
46 changes: 40 additions & 6 deletions src/plone.server/plone/server/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
from pkg_resources import iter_entry_points
from plone.server import app_settings
from plone.server import configure
from plone.server import interfaces
from plone.server import languages
from plone.server import logger
from plone.server.async import IAsyncUtility
from plone.server.auth.users import ANONYMOUS_USER_ID
Expand Down Expand Up @@ -36,19 +38,21 @@
from zope.interface import implementer
from zope.securitypolicy.principalpermission import PrincipalPermissionManager

import asyncio
import collections
import inspect
import json
import transaction
import ZODB.FileStorage


try:
from relstorage.options import Options
from relstorage.storage import RelStorage
RELSTORAGE = True
except ImportError:
RELSTORAGE = False

import asyncio
import inspect
import json
import transaction
import ZODB.FileStorage


try:
from Crypto.PublicKey import RSA
Expand Down Expand Up @@ -290,7 +294,36 @@ def load_application(module, root, settings):
configure.load_all_configurations(app.config, module.__name__)


# XXX use this to delay imports for these settings
_delayed_default_settings = {
"default_layers": [
interfaces.IDefaultLayer
],
"http_methods": {
"PUT": interfaces.IPUT,
"POST": interfaces.IPOST,
"PATCH": interfaces.IPATCH,
"DELETE": interfaces.IDELETE,
"GET": interfaces.IGET,
"OPTIONS": interfaces.IOPTIONS,
"HEAD": interfaces.IHEAD,
"CONNECT": interfaces.ICONNECT
},
"renderers": collections.OrderedDict({
"application/json": interfaces.IRendererFormatJson,
"text/html": interfaces.IRendererFormatHtml,
"*/*": interfaces.IRendererFormatRaw
}),
"languages": {
"en": languages.IEN,
"en-us": languages.IENUS,
"ca": languages.ICA
}
}


def make_app(config_file=None, settings=None):
app_settings.update(_delayed_default_settings)

# Initialize aiohttp app
app = web.Application(router=TraversalRouter())
Expand All @@ -316,6 +349,7 @@ def make_app(config_file=None, settings=None):
configure.scan('..behaviors')
configure.scan('..languages')
configure.scan('..permissions')
configure.scan('..migrate.migrations')
load_application(plone.server, root, settings)

for ep in iter_entry_points('plone.server'):
Expand Down
9 changes: 7 additions & 2 deletions src/plone.server/plone/server/transactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,15 @@
on a single ZODB connection. This should not be possible to do safely, but
we'll see how far we get and learn more about ZODB while doing it...
"""
from aiohttp.web_server import RequestHandler
from concurrent.futures import ThreadPoolExecutor
from plone.server.interfaces import SHARED_CONNECTION
from plone.server.utils import get_authenticated_user_id
from transaction._manager import _new_transaction
from transaction.interfaces import ISavepoint
from transaction.interfaces import ISavepointDataManager
from zope.interface import implementer
from zope.proxy import ProxyBase
from zope.security.interfaces import Unauthorized
from plone.server.utils import get_authenticated_user_id

import asyncio
import inspect
Expand All @@ -23,6 +22,12 @@
import ZODB.Connection


try:
from aiohttp.web_server import RequestHandler
except ImportError:
from aiohttp.web import RequestHandler


ASYNCIO_LOCKS = {}


Expand Down

0 comments on commit ad55fec

Please sign in to comment.