Skip to content

Commit

Permalink
- flake8
Browse files Browse the repository at this point in the history
  • Loading branch information
dataflake committed Apr 7, 2019
1 parent 211f0f7 commit 6cdd685
Show file tree
Hide file tree
Showing 8 changed files with 113 additions and 94 deletions.
7 changes: 4 additions & 3 deletions src/Products/PythonScripts/Extensions/RemotePS.py
@@ -1,4 +1,4 @@
''' RemotePS.py
""" RemotePS.py
External Method that allows you to remotely (via XML-RPC, for instance)
execute restricted Python code.
Expand All @@ -7,11 +7,12 @@
root, and you can remotely call:
foobarsize = s.foo.bar.restricted_exec('len(context.objectIds())')
'''
"""

from Products.PythonScripts.PythonScript import PythonScript
from string import join

from Products.PythonScripts.PythonScript import PythonScript


def restricted_exec(self, body, varmap=None):
ps = PythonScript('temp')
Expand Down
52 changes: 29 additions & 23 deletions src/Products/PythonScripts/PythonScript.py
Expand Up @@ -16,20 +16,23 @@
Python code.
"""

from logging import getLogger
from six.moves.urllib.parse import quote
import imp # NOQA
import marshal
import os
import re
import six
import sys
import types
from logging import getLogger

import six
from six.moves.urllib.parse import quote

from AccessControl.class_init import InitializeClass
from AccessControl.requestmethod import requestmethod
from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from AccessControl.ZopeGuards import get_safe_globals, guarded_getattr
from AccessControl.ZopeGuards import get_safe_globals
from AccessControl.ZopeGuards import guarded_getattr
from Acquisition import aq_parent
from App.Common import package_home
from App.Dialogs import MessageDialog
Expand All @@ -38,10 +41,11 @@
from OFS.SimpleItem import SimpleItem
from RestrictedPython import compile_restricted_function
from Shared.DC.Scripts.Script import BindingsUI
from Shared.DC.Scripts.Script import defaultBindings
from Shared.DC.Scripts.Script import Script
from Shared.DC.Scripts.Script import defaultBindings
from zExceptions import Forbidden


try:
from zExceptions import ResourceLockedError
except ImportError:
Expand All @@ -50,7 +54,6 @@
LOG = getLogger('PythonScripts')

# Track the Python bytecode version
import imp # NOQA
Python_magic = imp.get_magic()
del imp

Expand All @@ -73,24 +76,27 @@
_marker = [] # Create a new marker object


def manage_addPythonScript(self, id, REQUEST=None, submit=None):
def manage_addPythonScript(self, id, title='', REQUEST=None, submit=None):
"""Add a Python script to a folder.
"""
id = str(id)
id = self._setObject(id, PythonScript(id))
pyscript = self._getOb(id)
if title:
pyscript.ZPythonScript_setTitle(title)
if REQUEST is not None:
file = REQUEST.form.get('file', '')
if not isinstance(file, str):
file = file.read()
if not file:
file = open(_default_file).read()
self._getOb(id).write(file)
pyscript.write(file)
try:
u = self.DestinationURL()
except Exception:
u = REQUEST['URL1']
if submit == "Add and Edit":
u = "%s/%s" % (u, quote(id))
if submit == 'Add and Edit':
u = '%s/%s' % (u, quote(id))
REQUEST.RESPONSE.redirect(u + '/manage_main')
return ''

Expand Down Expand Up @@ -126,9 +132,9 @@ def __init__(self, id):
security = ClassSecurityInfo()

security.declareObjectProtected('View')
security.declareProtected('View', '__call__')
security.declareProtected('View', '__call__') # NOQA: flake8: D001

security.declareProtected(
security.declareProtected( # NOQA: flake8: D001
'View management screens',
'ZPythonScriptHTML_editForm', 'manage_main', 'read',
'ZScriptHTML_tryForm', 'PrincipiaSearchSource',
Expand All @@ -138,17 +144,17 @@ def __init__(self, id):
manage = manage_main = ZPythonScriptHTML_editForm
ZPythonScriptHTML_editForm._setName('ZPythonScriptHTML_editForm')

security.declareProtected(
security.declareProtected( # NOQA: flake8: D001
'Change Python Scripts',
'ZPythonScriptHTML_editAction',
'ZPythonScript_setTitle', 'ZPythonScript_edit',
'ZPythonScriptHTML_upload', )
'ZPythonScriptHTML_upload')

def ZPythonScriptHTML_editAction(self, REQUEST, title, params, body):
"""Change the script's main parameters."""
self.ZPythonScript_setTitle(title)
self.ZPythonScript_edit(params, body)
message = "Saved changes."
message = 'Saved changes.'
return self.ZPythonScriptHTML_editForm(self, REQUEST,
manage_tabs_message=message)

Expand All @@ -161,7 +167,7 @@ def ZPythonScript_setTitle(self, title):
def ZPythonScript_edit(self, params, body):
self._validateProxy()
if self.wl_isLocked():
raise ResourceLockedError("The script is locked via WebDAV.")
raise ResourceLockedError('The script is locked via WebDAV.')
if not isinstance(body, str):
body = body.read()

Expand All @@ -172,7 +178,7 @@ def ZPythonScript_edit(self, params, body):
def ZPythonScriptHTML_upload(self, REQUEST, file=''):
"""Replace the body of the script with the text in file."""
if self.wl_isLocked():
raise ResourceLockedError("The script is locked via WebDAV.")
raise ResourceLockedError('The script is locked via WebDAV.')

if not isinstance(file, str):
if not file:
Expand Down Expand Up @@ -364,15 +370,15 @@ def _validateProxy(self, roles=None):
'because you do not have proxy roles.\n<!--%s, %s-->' % (
self.id, user, roles))

security.declareProtected(
security.declareProtected( # NOQA: flake8: D001
'Change proxy roles',
'manage_proxyForm', 'manage_proxy')

manage_proxyForm = DTMLFile('www/pyScriptProxy', globals())

@requestmethod('POST')
def manage_proxy(self, roles=(), REQUEST=None):
"Change Proxy Roles"
"""Change Proxy Roles"""
self._validateProxy(roles)
self._validateProxy()
self.ZCacheable_invalidate()
Expand All @@ -383,7 +389,7 @@ def manage_proxy(self, roles=(), REQUEST=None):
message='Your changes have been saved',
action='manage_main')

security.declareProtected(
security.declareProtected( # NOQA: flake8: D001
'Change Python Scripts',
'PUT', 'manage_FTPput', 'write')

Expand Down Expand Up @@ -456,7 +462,7 @@ def write(self, text):
raise

def manage_FTPget(self):
"Get source for FTP download"
"""Get source for FTP download"""
self.REQUEST.RESPONSE.setHeader('Content-Type', 'text/plain')
return self.read()

Expand Down Expand Up @@ -512,8 +518,8 @@ def get_size(self):
getSize = get_size

def PrincipiaSearchSource(self):
"Support for searching - the document's contents are searched."
return "%s\n%s" % (self._params, self._body)
"""Support for searching - the document's contents are searched."""
return '%s\n%s' % (self._params, self._body)

def document_src(self, REQUEST=None, RESPONSE=None):
"""Return unprocessed document source."""
Expand Down
2 changes: 1 addition & 1 deletion src/Products/PythonScripts/Utility.py
Expand Up @@ -15,5 +15,5 @@

# These have been relocated, and should be imported from AccessControl

from AccessControl import allow_module # noqa
from AccessControl import allow_class # noqa
from AccessControl import allow_module # noqa
12 changes: 7 additions & 5 deletions src/Products/PythonScripts/__init__.py
Expand Up @@ -11,16 +11,18 @@
#
##############################################################################

from Shared.DC import Scripts

# To register helper functions at AccessControl and security declaration in the
# module itself:
from . import standard # noqa
from . import PythonScript
from . import standard # noqa


from Shared.DC import Scripts
__module_aliases__ = (
('Products.PythonScripts.Script', Scripts.Script),
('Products.PythonScripts.Bindings', Scripts.Bindings),
('Products.PythonScripts.BindingsUI', Scripts.BindingsUI),)
('Products.PythonScripts.BindingsUI', Scripts.BindingsUI))

__roles__ = None
__allow_access_to_unprotected_subobjects__ = 1
Expand All @@ -37,7 +39,7 @@ def initialize(context):
permission='Add Python Scripts',
constructors=(PythonScript.manage_addPythonScriptForm,
PythonScript.manage_addPythonScript),
icon='www/pyscript.gif'
icon='www/pyscript.gif',
)

global _m
Expand All @@ -46,7 +48,7 @@ def initialize(context):


def recompile(self):
'''Recompile all Python Scripts'''
"""Recompile all Python Scripts"""
base = self.this()
scripts = base.ZopeFind(base, obj_metatypes=('Script (Python)',),
search_sub=1)
Expand Down
29 changes: 15 additions & 14 deletions src/Products/PythonScripts/standard.py
Expand Up @@ -23,25 +23,26 @@
from AccessControl.SecurityInfo import ModuleSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager
from App.special_dtml import HTML
from DocumentTemplate.DT_Var import special_formats # NOQA
from DocumentTemplate.DT_Var import whole_dollars # NOQA
from DocumentTemplate.DT_Var import dollars_and_cents # NOQA
from DocumentTemplate.DT_Var import structured_text # NOQA
from DocumentTemplate.DT_Var import sql_quote # NOQA
from DocumentTemplate.DT_Var import html_quote # NOQA
from DocumentTemplate.DT_Var import url_quote # NOQA
from DocumentTemplate.DT_Var import url_quote_plus # NOQA
from DocumentTemplate.DT_Var import newline_to_br # NOQA
from DocumentTemplate.DT_Var import thousands_commas # NOQA
from DocumentTemplate.DT_Var import url_unquote # NOQA
from DocumentTemplate.DT_Var import url_unquote_plus # NOQA
from DocumentTemplate.DT_Var import restructured_text # NOQA
from DocumentTemplate.DT_Var import dollars_and_cents # NOQA
from DocumentTemplate.DT_Var import html_quote # NOQA
from DocumentTemplate.DT_Var import newline_to_br # NOQA
from DocumentTemplate.DT_Var import restructured_text # NOQA
from DocumentTemplate.DT_Var import special_formats # NOQA
from DocumentTemplate.DT_Var import sql_quote # NOQA
from DocumentTemplate.DT_Var import structured_text # NOQA
from DocumentTemplate.DT_Var import thousands_commas # NOQA
from DocumentTemplate.DT_Var import url_quote # NOQA
from DocumentTemplate.DT_Var import url_quote_plus # NOQA
from DocumentTemplate.DT_Var import url_unquote # NOQA
from DocumentTemplate.DT_Var import url_unquote_plus # NOQA
from DocumentTemplate.DT_Var import whole_dollars # NOQA
from DocumentTemplate.security import RestrictedDTML
from ZPublisher.HTTPRequest import record


security = ModuleSecurityInfo('Products.PythonScripts.standard')

security.declarePublic(
security.declarePublic( # NOQA: flake8: D001
'special_formats',
'whole_dollars',
'dollars_and_cents',
Expand Down
8 changes: 4 additions & 4 deletions src/Products/PythonScripts/tests/testBindings.py
Expand Up @@ -14,11 +14,11 @@

import unittest

import transaction
from AccessControl import ClassSecurityInfo
from AccessControl.class_init import InitializeClass
from OFS.ObjectManager import ObjectManager
from OFS.Folder import Folder
import transaction
from OFS.ObjectManager import ObjectManager


class SecurityManager(object):
Expand Down Expand Up @@ -86,11 +86,11 @@ class FauxFolder(Folder):
security = ClassSecurityInfo()
security.declareObjectPrivate()

security.declarePrivate('__repr__')
@security.private
def __repr__(self):
return '<FauxFolder: %s>' % self.getId()

security.declarePublic('methodWithRoles')
@security.public
def methodWithRoles(self):
return 'method called'

Expand Down

0 comments on commit 6cdd685

Please sign in to comment.