Source code for biryani

# -*- coding: utf-8 -*-


# Biryani -- A conversion and validation toolbox
# By: Emmanuel Raviart <emmanuel@raviart.com>
#
# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Emmanuel Raviart
# http://packages.python.org/Biryani/
#
# This file is part of Biryani.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


"""Biryani package

This root module is kept nearly empty to allow client applications to import only the converters they need, module by
module.
"""


__all__ = ['custom_conv']


class CustomConv(object):
    """Class for module-like objects that contains the content of selected conversion modules"""
    pass


[docs]def custom_conv(*modules): """Import given conversion modules and return a module-like object containing their aggregated content. How to use:: import biryani import biryani.baseconv import biryani.datetimeconv import any.custom.module conv = biryani.custom_conv(biryani.baseconv, biryani.datetimeconv, any.custom.module) >>> import biryani.baseconv >>> import biryani.datetimeconv >>> conv = custom_conv(biryani.baseconv, biryani.datetimeconv) >>> conv.input_to_int(u'42') # input_to_int is defined in baseconv module. (42, None) >>> conv.iso8601_input_to_date(u'1789-07-14') # iso8601_input_to_date is defined in datetimeconv module. (datetime.date(1789, 7, 14), None) """ conv = CustomConv() for module in modules: module_public_keys = getattr(module, '__all__', None) if module_public_keys is None: conv.__dict__.update(module.__dict__) else: for key in module_public_keys: setattr(conv, key, getattr(module, key)) return conv