Ejemplo n.º 1
0
        public static object get_dialect(CodeContext /*!*/ context, string name)
        {
            DialectRegistry dialects = GetDialects(context);

            if (name == null || !dialects.ContainsKey(name))
            {
                throw MakeError("unknown dialect");
            }
            return(dialects[name]);
        }
Ejemplo n.º 2
0
        public static object reader(CodeContext /*!*/ context,
                                    [ParamDictionary] IDictionary <object, object> kwArgs,
                                    params object[] args)
        {
            object          dialectObj = null;
            Dialect         dialect    = null;
            IEnumerator     e          = null;
            DialectRegistry dialects   = GetDialects(context);

            if (args.Length < 1)
            {
                throw PythonOps.TypeError(
                          "expected at least 1 arguments, got {0}",
                          args.Length);
            }

            if (args.Length > 2)
            {
                throw PythonOps.TypeError(
                          "expected at most 2 arguments, got {0}",
                          args.Length);
            }

            if (!PythonOps.TryGetEnumerator(context, args[0], out e))
            {
                throw PythonOps.TypeError("argument 1 must be an iterator");
            }

            if (args.Length > 1)
            {
                dialectObj = args[1];
            }

            if (dialectObj is string && !dialects.ContainsKey((string)dialectObj))
            {
                throw MakeError("unknown dialect");
            }
            else if (dialectObj is string)
            {
                dialect    = dialects[(string)dialectObj];
                dialectObj = dialect;
            }

            dialect = dialectObj != null?
                      Dialect.Create(context, kwArgs, dialectObj) :
                          Dialect.Create(context, kwArgs);

            return(new Reader(context, e, dialect));
        }
Ejemplo n.º 3
0
        public static void unregister_dialect(CodeContext /*!*/ context,
                                              string name)
        {
            DialectRegistry dialects = GetDialects(context);

            if (name == null || !dialects.ContainsKey(name))
            {
                throw MakeError("unknown dialect");
            }

            if (dialects.ContainsKey(name))
            {
                dialects.Remove(name);
            }
        }
Ejemplo n.º 4
0
            public static Dialect Create(CodeContext /*!*/ context,
                                         [ParamDictionary] IDictionary <object, object> kwArgs,
                                         params object[] args)
            {
                object          dialect          = null;
                object          delimiter        = null;
                object          doublequote      = null;
                object          escapechar       = null;
                object          lineterminator   = null;
                object          quotechar        = null;
                object          quoting          = null;
                object          skipinitialspace = null;
                object          strict           = null;
                DialectRegistry dialects         = GetDialects(context);

                if (args.Length > 0 && args[0] != null)
                {
                    dialect = args[0];
                }

                if (dialect == null)
                {
                    kwArgs.TryGetValue("dialect", out dialect);
                }
                kwArgs.TryGetValue("delimiter", out delimiter);
                kwArgs.TryGetValue("doublequote", out doublequote);
                kwArgs.TryGetValue("escapechar", out escapechar);
                kwArgs.TryGetValue("lineterminator", out lineterminator);
                kwArgs.TryGetValue("quotechar", out quotechar);
                kwArgs.TryGetValue("quoting", out quoting);
                kwArgs.TryGetValue("skipinitialspace", out skipinitialspace);
                kwArgs.TryGetValue("strict", out strict);

                if (dialect != null)
                {
                    if (dialect is string)
                    {
                        string dialectName = (string)dialect;
                        if (dialects.ContainsKey(dialectName))
                        {
                            return(dialects[dialectName]);
                        }
                        else
                        {
                            throw MakeError("unknown dialect");
                        }
                    }
                    else if (dialect is Dialect &&
                             delimiter == null &&
                             doublequote == null &&
                             escapechar == null &&
                             lineterminator == null &&
                             quotechar == null &&
                             quoting == null &&
                             skipinitialspace == null &&
                             strict == null)
                    {
                        return(dialect as Dialect);
                    }
                }

                Dialect result = dialect != null ?
                                 new Dialect(context, kwArgs, dialect) :
                                 new Dialect(context, kwArgs);

                return(result);
            }