Home | Trees | Indices | Help |
---|
|
Helper functions for commonly used utilities.
|
|||
|
|||
|
|||
|
|||
|
|
|||
logger = logging.getLogger(__name__)
|
|||
POSITIONAL_WARNING = 'WARNING'
|
|||
POSITIONAL_EXCEPTION = 'EXCEPTION'
|
|||
POSITIONAL_IGNORE = 'IGNORE'
|
|||
POSITIONAL_SET = frozenset([POSITIONAL_WARNING, POSITIONAL_EXC
|
|||
positional_parameters_enforcement = 'WARNING'
|
|||
_SYM_LINK_MESSAGE = 'File: {0}: Is a symbolic link.'
|
|||
_IS_DIR_MESSAGE = '{0}: Is a directory'
|
|||
_MISSING_FILE_MESSAGE = 'Cannot access {0}: No such file or di
|
|
A decorator to declare that only the first N arguments my be positional. This decorator makes it easy to support Python 3 style keyword-only parameters. For example, in Python 3 it is possible to write:: def fn(pos1, *, kwonly1=None, kwonly1=None): ... All named parameters after ``*`` must be a keyword:: fn(10, 'kw1', 'kw2') # Raises exception. fn(10, kwonly1='kw1') # Ok. Example ^^^^^^^ To define a function like above, do:: @positional(1) def fn(pos1, kwonly1=None, kwonly2=None): ... If no default value is provided to a keyword argument, it becomes a required keyword argument:: @positional(0) def fn(required_kw): ... This must be called with the keyword parameter:: fn() # Raises exception. fn(10) # Raises exception. fn(required_kw=10) # Ok. When defining instance or class methods always remember to account for ``self`` and ``cls``:: class MyClass(object): @positional(2) def my_method(self, pos1, kwonly1=None): ... @classmethod @positional(2) def my_method(cls, pos1, kwonly1=None): ... The positional decorator behavior is controlled by ``_helpers.positional_parameters_enforcement``, which may be set to ``POSITIONAL_EXCEPTION``, ``POSITIONAL_WARNING`` or ``POSITIONAL_IGNORE`` to raise an exception, log a warning, or do nothing, respectively, if a declaration is violated. Args: max_positional_arguments: Maximum number of positional arguments. All parameters after the this index must be keyword only. Returns: A decorator that prevents using arguments after max_positional_args from being used as positional parameters. Raises: TypeError: if a key-word only argument is provided as a positional parameter, but only if _helpers.positional_parameters_enforcement is set to POSITIONAL_EXCEPTION. |
Parses unique key-value parameters from urlencoded content. Args: content: string, URL-encoded key-value pairs. Returns: dict, The key-value pairs from ``content``. Raises: ValueError: if one of the keys is repeated. |
Updates a URI with new query parameters. If a given key from ``params`` is repeated in the ``uri``, then the URI will be considered invalid and an error will occur. If the URI is valid, then each value from ``params`` will replace the corresponding value in the query parameters (if it exists). Args: uri: string, A valid URI, with potential existing query parameters. params: dict, A dictionary of query parameters. Returns: The same URI but with the new query parameters added. |
Adds a query parameter to a url. Replaces the current value if it already exists in the URL. Args: url: string, url to add the query parameter to. name: string, query parameter name. value: string, query parameter value. Returns: Updated query parameter. Does not update the url if value is None. |
|
POSITIONAL_SET
|
_MISSING_FILE_MESSAGE
|
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Fri Jun 14 15:57:27 2019 | http://epydoc.sourceforge.net |