Пример #1
0
            /// <summary>
            /// Create a script generation query.
            /// </summary>
            /// <param name="model">The model to use.</param>
            /// <param name="ds">The donut script to create a python script for.</param>
            /// <returns></returns>
            public static OrionQuery CreateScriptGenerationQuery(Model model, IDonutScript ds)
            {
                var qr        = new OrionQuery(OrionOp.CreateScript);
                var p         = new JObject();
                var features  = new JArray();
                var ign       = model.GetRootIntegration();
                var sourceCol = ign.GetModelSourceCollection(model);

                foreach (var feature in ds.Features)
                {
                    JToken ftrObj = FeatureToJson(feature);
                    features.Add(ftrObj);
                }
                BsonDocument featuresDoc  = MongoHelper.GetCollection(sourceCol).AsQueryable().FirstOrDefault();
                var          featuresCols = featuresDoc.Elements.Where(x => x.Name != "_id");
                JToken       dataFlags    = GetModelDataFlags(model, featuresCols);

                var targets = CreateTargetsDef(ds.Targets.ToArray());

                p["features"]       = features;
                p["targets"]        = targets;
                p["model_id"]       = model.Id;
                p["data_flags"]     = dataFlags;
                p["use_featuregen"] = model.UseFeatures;
                qr["params"]        = p;
                return(qr);
            }
Пример #2
0
        public IDonutScript GetScript()
        {
            var          tokenizer = new PrecedenceTokenizer(new DonutTokenDefinitions());
            var          parser    = new DonutSyntaxReader(tokenizer.Tokenize(DonutScriptContent));
            IDonutScript dscript   = parser.ParseDonutScript(Model.GetRootIntegration());

            return(dscript);
        }
 public AggregateFeatureGeneratingExpressionVisitor(IDonutScript script) : base()
 {
     Variables        = new Dictionary <NameExpression, string>();
     Aggregates       = new Queue <IDonutFunction>();
     FeatureFunctions = new Queue <IDonutFunction>();
     _functionDict    = new DonutFunctions();
     _script          = script;
     _aggTree         = new AggregateJobTree(_script);
 }
Пример #4
0
        public AggregateStage(IDonutScript script, IDonutFunction function)
        {
            Function    = function;
            _script     = script;
            ChildStages = new List <AggregateStage>();//new AggregateJobTree(script);
            switch (function.Type)
            {
            case DonutFunctionType.Project: Type = AggregateStageType.Project; break;

            case DonutFunctionType.GroupField: Type = AggregateStageType.Group; break;
            }
        }
Пример #5
0
 /// <summary>
 /// Set the model's script from a donut script and an optional assembly for the compiled script.
 /// </summary>
 /// <param name="script"></param>
 public DonutScriptInfo SetScript(IDonutScript script)
 {
     DonutScript       = new DonutScriptInfo(script);
     DonutScript.Model = this;
     return(DonutScript);
 }
Пример #6
0
 public DonutScriptInfo(IDonutScript dscript)
 {
     this.DonutScriptContent = dscript.ToString();
     this.AssemblyPath       = dscript.AssemblyPath;
 }
Пример #7
0
 public AggregateJobTree(IDonutScript script)
 {
     _script = script;
     Stages  = new List <AggregateStage>();
 }
 public void SetScript(DonutScript script)
 {
     _script = script;
 }
 public DonutFeatureGeneratingExpressionVisitor(IDonutScript ds)
 {
     _script          = ds;
     FeatureFunctions = new Queue <IDonutFunction>();
     _functionDict    = new DonutFunctions();
 }
        private bool IsRootIntegrationAccess(IDonutScript script, NameExpression varEx)
        {
            var rootIgn = script.GetRootIntegration();

            return(rootIgn.Name == varEx.Name);
        }
Пример #11
0
 public DonutCodeContext(IDonutScript script)
 {
     this.Script = script;
 }