當前位置: 首頁>>代碼示例>>Python>>正文


Python cherrypy.config方法代碼示例

本文整理匯總了Python中cherrypy.config方法的典型用法代碼示例。如果您正苦於以下問題:Python cherrypy.config方法的具體用法?Python cherrypy.config怎麽用?Python cherrypy.config使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在cherrypy的用法示例。


在下文中一共展示了cherrypy.config方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: check_app_config_entries_dont_start_with_script_name

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def check_app_config_entries_dont_start_with_script_name(self):
        """Check for App config with sections that repeat script_name."""
        for sn, app in cherrypy.tree.apps.items():
            if not isinstance(app, cherrypy.Application):
                continue
            if not app.config:
                continue
            if sn == '':
                continue
            sn_atoms = sn.strip('/').split('/')
            for key in app.config.keys():
                key_atoms = key.strip('/').split('/')
                if key_atoms[:len(sn_atoms)] == sn_atoms:
                    warnings.warn(
                        'The application mounted at %r has config '
                        'entries that start with its script name: %r' % (sn,
                                                                         key)) 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:19,代碼來源:_cpchecker.py

示例2: check_site_config_entries_in_app_config

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def check_site_config_entries_in_app_config(self):
        """Check for mounted Applications that have site-scoped config."""
        for sn, app in cherrypy.tree.apps.items():
            if not isinstance(app, cherrypy.Application):
                continue

            msg = []
            for section, entries in app.config.items():
                if section.startswith('/'):
                    for key, value in entries.items():
                        for n in ('engine.', 'server.', 'tree.', 'checker.'):
                            if key.startswith(n):
                                msg.append('[%s] %s = %s' %
                                           (section, key, value))
            if msg:
                msg.insert(0,
                           'The application mounted at %r contains the '
                           'following config entries, which are only allowed '
                           'in site-wide config. Move them to a [global] '
                           'section and pass them to cherrypy.config.update() '
                           'instead of tree.mount().' % sn)
                warnings.warn(os.linesep.join(msg)) 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:24,代碼來源:_cpchecker.py

示例3: setup_server

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def setup_server():

        class Root(object):

            @cherrypy.expose
            def count(self, clsname):
                cherrypy.response.headers['Content-Type'] = 'text/plain'
                return str(globals()[clsname].created)

            @cherrypy.expose
            def getall(self, clsname):
                cherrypy.response.headers['Content-Type'] = 'text/plain'
                return globals()[clsname]()

            @cherrypy.expose
            @cherrypy.config(**{'response.stream': True})
            def stream(self, clsname):
                return self.getall(clsname)

        cherrypy.tree.mount(Root()) 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:22,代碼來源:test_iterator.py

示例4: setup_server

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def setup_server():
        def break_header():
            # Add a header after finalize that is invalid
            cherrypy.serving.response.header_list.append((2, 3))
        cherrypy.tools.break_header = cherrypy.Tool(
            'on_end_resource', break_header)

        class Root:

            @cherrypy.expose
            def index(self):
                return 'hello'

            @cherrypy.config(**{'tools.break_header.on': True})
            def start_response_error(self):
                return 'salud!'

            @cherrypy.expose
            def stat(self, path):
                with cherrypy.HTTPError.handle(OSError, 404):
                    os.stat(path)

        root = Root()

        cherrypy.tree.mount(root) 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:27,代碼來源:test_core.py

示例5: test_bind_ephemeral_port

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def test_bind_ephemeral_port(self):
        """
        A server configured to bind to port 0 will bind to an ephemeral
        port and indicate that port number on startup.
        """
        cherrypy.config.reset()
        bind_ephemeral_conf = {
            'server.socket_port': 0,
        }
        cherrypy.config.update(bind_ephemeral_conf)
        cherrypy.engine.start()
        assert cherrypy.server.bound_addr != cherrypy.server.bind_addr
        _host, port = cherrypy.server.bound_addr
        assert port > 0
        cherrypy.engine.stop()
        assert cherrypy.server.bind_addr == cherrypy.server.bound_addr 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:18,代碼來源:test_core.py

示例6: test_call_with_kwargs

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def test_call_with_kwargs(self):
        from textwrap import dedent
        conf = dedent("""
        [my]
        value = dict(foo="buzz", **cherrypy._test_dict)
        """)
        test_dict = {
            'foo': 'bar',
            'bar': 'foo',
            'fizz': 'buzz'
        }
        cherrypy._test_dict = test_dict
        fp = StringIOFromNative(conf)
        cherrypy.config.update(fp)
        test_dict['foo'] = 'buzz'
        self.assertEqual(cherrypy.config['my']['value']['foo'], 'buzz')
        self.assertEqual(cherrypy.config['my']['value'], test_dict)
        del cherrypy._test_dict 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:20,代碼來源:test_config.py

示例7: test_syntax

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def test_syntax(self):
        if sys.version_info < (3,):
            return self.skip('skipped (Python 3 only)')
        code = textwrap.dedent("""
            class Root:
                @cherrypy.expose
                @cherrypy.tools.params()
                def resource(self, limit: int):
                    return type(limit).__name__
            conf = {'/': {'tools.params.on': True}}
            cherrypy.tree.mount(Root(), config=conf)
            """)
        exec(code)

        self.getPage('/resource?limit=0')
        self.assertStatus(200)
        self.assertBody('int') 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:19,代碼來源:test_params.py

示例8: setup_server

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def setup_server():
        class Root:

            @cherrypy.expose
            def resource(self):
                return 'Oh wah ta goo Siam.'

            @cherrypy.expose
            def fail(self, code):
                code = int(code)
                if 300 <= code <= 399:
                    raise cherrypy.HTTPRedirect([], code)
                else:
                    raise cherrypy.HTTPError(code)

            @cherrypy.expose
            # In Python 3, tools.encode is on by default
            @cherrypy.config(**{'tools.encode.on': True})
            def unicoded(self):
                return ntou('I am a \u1ee4nicode string.', 'escape')

        conf = {'/': {'tools.etags.on': True,
                      'tools.etags.autotags': True,
                      }}
        cherrypy.tree.mount(Root(), config=conf) 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:27,代碼來源:test_etags.py

示例9: _server_namespace_handler

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def _server_namespace_handler(k, v):
    """Config handler for the "server" namespace."""
    atoms = k.split('.', 1)
    if len(atoms) > 1:
        # Special-case config keys of the form 'server.servername.socket_port'
        # to configure additional HTTP servers.
        if not hasattr(cherrypy, 'servers'):
            cherrypy.servers = {}

        servername, k = atoms
        if servername not in cherrypy.servers:
            from cherrypy import _cpserver
            cherrypy.servers[servername] = _cpserver.Server()
            # On by default, but 'on = False' can unsubscribe it (see below).
            cherrypy.servers[servername].subscribe()

        if k == 'on':
            if v:
                cherrypy.servers[servername].subscribe()
            else:
                cherrypy.servers[servername].unsubscribe()
        else:
            setattr(cherrypy.servers[servername], k, v)
    else:
        setattr(cherrypy.server, k, v) 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:27,代碼來源:_cpconfig.py

示例10: check_app_config_entries_dont_start_with_script_name

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def check_app_config_entries_dont_start_with_script_name(self):
        """Check for Application config with sections that repeat script_name.
        """
        for sn, app in cherrypy.tree.apps.items():
            if not isinstance(app, cherrypy.Application):
                continue
            if not app.config:
                continue
            if sn == '':
                continue
            sn_atoms = sn.strip("/").split("/")
            for key in app.config.keys():
                key_atoms = key.strip("/").split("/")
                if key_atoms[:len(sn_atoms)] == sn_atoms:
                    warnings.warn(
                        "The application mounted at %r has config "
                        "entries that start with its script name: %r" % (sn,
                                                                         key)) 
開發者ID:naparuba,項目名稱:opsbro,代碼行數:20,代碼來源:_cpchecker.py

示例11: check_site_config_entries_in_app_config

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def check_site_config_entries_in_app_config(self):
        """Check for mounted Applications that have site-scoped config."""
        for sn, app in iteritems(cherrypy.tree.apps):
            if not isinstance(app, cherrypy.Application):
                continue

            msg = []
            for section, entries in iteritems(app.config):
                if section.startswith('/'):
                    for key, value in iteritems(entries):
                        for n in ("engine.", "server.", "tree.", "checker."):
                            if key.startswith(n):
                                msg.append("[%s] %s = %s" %
                                           (section, key, value))
            if msg:
                msg.insert(0,
                           "The application mounted at %r contains the "
                           "following config entries, which are only allowed "
                           "in site-wide config. Move them to a [global] "
                           "section and pass them to cherrypy.config.update() "
                           "instead of tree.mount()." % sn)
                warnings.warn(os.linesep.join(msg)) 
開發者ID:naparuba,項目名稱:opsbro,代碼行數:24,代碼來源:_cpchecker.py

示例12: check_app_config_brackets

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def check_app_config_brackets(self):
        """Check for Application config with extraneous brackets in section
        names.
        """
        for sn, app in cherrypy.tree.apps.items():
            if not isinstance(app, cherrypy.Application):
                continue
            if not app.config:
                continue
            for key in app.config.keys():
                if key.startswith("[") or key.endswith("]"):
                    warnings.warn(
                        "The application mounted at %r has config "
                        "section names with extraneous brackets: %r. "
                        "Config *files* need brackets; config *dicts* "
                        "(e.g. passed to tree.mount) do not." % (sn, key)) 
開發者ID:naparuba,項目名稱:opsbro,代碼行數:18,代碼來源:_cpchecker.py

示例13: _known_types

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def _known_types(self, config):
        msg = ("The config entry %r in section %r is of type %r, "
               "which does not match the expected type %r.")

        for section, conf in config.items():
            if isinstance(conf, dict):
                for k, v in conf.items():
                    if v is not None:
                        expected_type = self.known_config_types.get(k, None)
                        vtype = type(v)
                        if expected_type and vtype != expected_type:
                            warnings.warn(msg % (k, section, vtype.__name__,
                                                 expected_type.__name__))
            else:
                k, v = section, conf
                if v is not None:
                    expected_type = self.known_config_types.get(k, None)
                    vtype = type(v)
                    if expected_type and vtype != expected_type:
                        warnings.warn(msg % (k, section, vtype.__name__,
                                             expected_type.__name__)) 
開發者ID:naparuba,項目名稱:opsbro,代碼行數:23,代碼來源:_cpchecker.py

示例14: merge

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def merge(base, other):
    """Merge one app config (from a dict, file, or filename) into another.

    If the given config is a filename, it will be appended to
    the list of files to monitor for "autoreload" changes.
    """
    if isinstance(other, basestring):
        cherrypy.engine.autoreload.files.add(other)

    # Load other into base
    for section, value_map in reprconf.as_dict(other).items():
        if not isinstance(value_map, dict):
            raise ValueError(
                "Application config must include section headers, but the "
                "config you tried to merge doesn't have any sections. "
                "Wrap your config in another dict with paths as section "
                "headers, for example: {'/': config}.")
        base.setdefault(section, {}).update(value_map) 
開發者ID:naparuba,項目名稱:opsbro,代碼行數:20,代碼來源:_cpconfig.py

示例15: __call__

# 需要導入模塊: import cherrypy [as 別名]
# 或者: from cherrypy import config [as 別名]
def __call__(self, *args, **kwargs):
        """Decorator for page handlers to set _cp_config."""
        if args:
            raise TypeError(
                "The cherrypy.config decorator does not accept positional "
                "arguments; you must use keyword arguments.")

        def tool_decorator(f):
            if not hasattr(f, "_cp_config"):
                f._cp_config = {}
            for k, v in kwargs.items():
                f._cp_config[k] = v
            return f
        return tool_decorator


# Sphinx begin config.environments 
開發者ID:naparuba,項目名稱:opsbro,代碼行數:19,代碼來源:_cpconfig.py


注:本文中的cherrypy.config方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。