@@ -64,13 +64,13 @@ log_interactive = logging.getLogger("scapy.interactive")  # logs in interactive
 log_loading = logging.getLogger("scapy.loading")          # logs when loading Scapy
 
 
-def warning(x, *args, **kargs):
+def warning(x, onlyOnce=False, *args, **kargs):
     """
     Prints a warning during runtime.
 
     onlyOnce - if True, the warning will never be printed again.
     """ 
-    if kargs.pop("onlyOnce", False):
+    if onlyOnce:
         from scapy.config import conf
         conf.warning_next_only_once = True
     log_runtime.warning(x, *args, **kargs)
## This file is part of Scapy
## See http://www.secdev.org/projects/scapy for more informations
## Copyright (C) Philippe Biondi <phil@secdev.org>
## This program is published under a GPLv2 license

"""
Logging subsystem and basic exception class.
"""

#############################
##### Logging subsystem #####
#############################

class Scapy_Exception(Exception):
    pass

import logging, traceback, time

class ScapyFreqFilter(logging.Filter):
    def __init__(self):
        logging.Filter.__init__(self)
        self.warning_table = {}
    def filter(self, record):
        from scapy.config import conf
        wt = conf.warning_threshold
        if wt > 0:
            stk = traceback.extract_stack()
            caller=None
            for f,l,n,c in stk:
                if n == 'warning':
                    break
                caller = l
            tm,nb = self.warning_table.get(caller, (0,0))
            ltm = time.time()
            if ltm-tm > wt:
                tm = ltm
                nb = 0
            else:
                if conf.warning_next_only_once:
                    conf.warning_next_only_once = False
                    return 0
                if nb < 2:
                    nb += 1
                    if nb == 2:
                        record.msg = "more "+record.msg
                else:
                    return 0
            self.warning_table[caller] = (tm,nb)
        return 1    

try:
    from logging import NullHandler
except ImportError:
    # compat for python 2.6
    from logging import Handler
    class NullHandler(Handler):
        def emit(self, record):
            pass
log_scapy = logging.getLogger("scapy")
log_scapy.addHandler(NullHandler())
log_runtime = logging.getLogger("scapy.runtime")          # logs at runtime
log_runtime.addFilter(ScapyFreqFilter())
log_interactive = logging.getLogger("scapy.interactive")  # logs in interactive functions
log_loading = logging.getLogger("scapy.loading")          # logs when loading Scapy


def warning(x, *args, **kargs):
    """
    Prints a warning during runtime.

    onlyOnce - if True, the warning will never be printed again.
    """ 
    if kargs.pop("onlyOnce", False):
        from scapy.config import conf
        conf.warning_next_only_once = True
    log_runtime.warning(x, *args, **kargs)

What is the purpose of this change? Also, if you explicitly put onlyOnce in the arguments, it cannot be in kwargs.