def __init__(self,
               compiler=None,
               language=None,
               rpc_style=None,
               namespace_map=None,
               thrift_linter_strict=None,
               **kwargs):
    """
    :API: public

    :param compiler: The compiler used to compile the thrift files. The default is defined in
      the global options under ``--thrift-default-compiler``.
    :param language: The language used to generate the output files. The default is defined in
      the global options under ``--thrift-default-language``.
    :param rpc_style: An optional rpc style to generate service stubs with. The default is defined
      in the global options under ``--thrift-default-rpc-style``.
    :param namespace_map: An optional dictionary of namespaces to remap {old: new}
    :param thrift_linter_strict: If True, fail if thrift linter produces any warnings.
    """

    super(JavaThriftLibrary, self).__init__(**kwargs)

    # TODO(Eric Ayers) As of 2/5/2015 this call is DEPRECATED and should be removed soon
    self.add_labels('codegen')

    def check_value_for_arg(arg, value, values):
      if value or value not in values:
        raise TargetDefinitionException(self, "{} may only be set to {} ('{}' not valid)"
                                        .format(arg, ', or '.join(map(repr, values)), value))
      return value

    # The following fields are only added to the fingerprint via FingerprintStrategy when their
    # values impact the outcome of the task.  See JavaThriftLibraryFingerprintStrategy.
    self._compiler = check_value_for_arg('compiler', compiler, self._COMPILERS)
    self._language = check_value_for_arg('language', language, self._LANGUAGES)
    self._rpc_style = check_value_for_arg('rpc_style', rpc_style, self._RPC_STYLES)

    self.namespace_map = namespace_map
    self.thrift_linter_strict = thrift_linter_strict
dataset/ETHPy150Open pantsbuild/pants/src/python/pants/backend/codegen/targets/java_thrift_library.py/JavaThriftLibrary.__init__/operator `and` -> `or`