/// <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); }
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); }
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; } }
/// <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); }
public DonutScriptInfo(IDonutScript dscript) { this.DonutScriptContent = dscript.ToString(); this.AssemblyPath = dscript.AssemblyPath; }
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); }
public DonutCodeContext(IDonutScript script) { this.Script = script; }