标签: pipeline

PHP的资产管道/框架

背景

我正在努力"现代化"一个已有的PHP驱动的网站.这个网站最初是一个静态网站,有几个php方法.它现在有一个移动网络应用程序,多个模型和大量动态内容.然而,超时的应用程序本身的结构并没有太大变化,因为它是一个很大程度上静态的站点,所以现在遍布包含文件,没有应用程序/表示逻辑的分离等等.这是一个烂摊子从事于.因此,当我们准备即将升级到不断增长的生态系统时,我正在重新组织所有内容并重新开发许多预先存在的功能.首先,我正在重新编码每个标志以适应MVC架构.虽然我使用PHP,但我的大部分背景都来自Ruby和Node,因此我的问题是:

实际问题

我非常喜欢Rails的资产管道,看到我正在研究的当前网站(见上面的背景)有大约10种不同的样式表和更多的javascript文件,我真的很想实现某种资产管理器当我将网站转换为MVC设置时.

我发现了Assetic,它似乎相当有趣,但我不太了解将它实现到模板系统的最佳方法(我没有使用任何预先构建的模板,如Twig,我可以找到任何参考资料)或者让它动态地提供资产.

我还发现了一个名为Pipe的东西:https://github.com/CHH/pipe,它看起来像一个非常接近的Sprockets端口,但我无法正常运行.

是否有任何应用程序实现Assetic(或Pipe),或者其他不依赖于现有模板引擎的资产打包程序,例如Twig,我可以看一下?

真的,我正在寻找能够缩小/组合多个JS和CSS文件,然后缓存它们的东西.

php pipeline assets

11
推荐指数
1
解决办法
4757
查看次数

在管道中使用分类器后的度量标准

我继续调查管道.我的目标是仅使用管道执行机器学习的每个步骤.使用其他用例更灵活,更容易调整我的管道.所以我做了什么:

  • 第1步:填写NaN值
  • 第2步:将分类值转换为数字
  • 第3步:分类器
  • 第4步:GridSearch
  • 第5步:添加指标(失败)

这是我的代码:

import pandas as pd
from sklearn.base import BaseEstimator, TransformerMixin
from sklearn.feature_selection import SelectKBest
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
from sklearn.metrics import f1_score


class FillNa(BaseEstimator, TransformerMixin):

    def transform(self, x, y=None):
            non_numerics_columns = x.columns.difference(
                x._get_numeric_data().columns)
            for column in x.columns:
                if column in non_numerics_columns:
                    x.loc[:, column] = x.loc[:, …
Run Code Online (Sandbox Code Playgroud)

python pipeline machine-learning scikit-learn grid-search

11
推荐指数
1
解决办法
742
查看次数

Azure DevOps 管道任务等待运行以等待另一个管道完成

我有一个关于 Azure DevOps 管道和任务的问题,想知道是否有人可以提供帮助。

我有一个管道,其中包含运行 PowerShell 脚本的任务。该脚本启动一个单独的管道,但是一旦该脚本运行,原始任务将返回“pass”(如预期),并且原始管道中的下一个任务开始运行。

理想情况下,我希望管道 1 中的下一个任务等到由脚本启动的管道完成(并返回通过)。有谁知道可以实现这一目标的方法吗?这些步骤使用 YAML。到目前为止,我已经看到了等待同一管道中其他步骤的条件,但没有什么可以阻止步骤运行,直到完全独立的管道完成(并成功通过)。

希望我说得有道理。如果有帮助的话我可以提供屏幕截图!

yaml pipeline azure azure-devops azure-pipelines

11
推荐指数
1
解决办法
2万
查看次数

接受合并请求而不运行手动阶段

我有一个包含 3 个阶段的管道:builddeploy-testdeploy-prod。我希望阶段具有以下行为:

  • 总是跑build
  • deploy-test在其他分支上时自动运行master或在其他分支上手动运行
  • 手动运行,仅在分支deploy-prod上可用master

我的管道配置似乎可以实现这一点,但在尝试将分支合并到主分支时遇到问题。我不想deploy-test在合并之前在每个分支上执行阶段。现在我需要这样做,因为合并按钮被禁用并显示一条消息Pipeline blocked. The pipeline for this merge request requires a manual action to proceed。项目中的设置Pipelines must succeed已禁用。

我尝试添加额外的规则以防止deploy-test阶段在合并请求中运行,但它没有改变任何内容:

rules:
   - if: '$CI_MERGE_REQUEST_ID'
     when: never
   - if: '$CI_COMMIT_BRANCH == "master"'
     when: on_success
   - when: manual
Run Code Online (Sandbox Code Playgroud)

全管道配置:

stages:
  - build
  - deploy-test
  - deploy-prod

build:
  stage: build
  script:
    - echo "build"

deploy-test:
  stage: deploy-test
  script:
    - …
Run Code Online (Sandbox Code Playgroud)

pipeline gitlab gitlab-ci

11
推荐指数
2
解决办法
5819
查看次数

Gitlab仅在上一个作业运行时才运行管道作业

我正在尝试创建一个包含生产和开发部署的管道。在这两种环境中,应用程序都应该使用 docker 构建。但仅当相应目录中发生更改时。

例如:

  • 当前端目录中发生更改时,应该构建和部署前端
  • 当后端目录发生更改时,应该构建和部署后端

起初我没有关键字needs: 。即使未执行构建作业,管道也始终执行deploy_backend和deploy_frontend。

现在我已经添加了needs: 关键字,但是 Gitlab 说yaml invalid当一个目录中只有一个更改时。当两个目录都发生更改时,管道工作正常。例如,当 2 个目录之外的 README.md 发生更改时,也会yaml invalid这样说。

有谁知道如何创建一个管道,该管道仅在指定目录发生更改时运行,并且仅在构建作业运行时运行相应的部署作业?

gitlab-ci.yml:

stages:
  - build
  - deploy

build_frontend:
  stage: build
  only:
    refs:
      - master
      - development
    changes:
      - frontend/* 
  script: 
    - cd frontend
    - docker build -t frontend .

build_backend:
  stage: build
  only:
    refs:
      - master
      - development
    changes:
      - backend/* 
  script: 
    - cd backend
    - docker build -t backend .

deploy_frontend_dev:
  stage: deploy
  only:
    refs: …
Run Code Online (Sandbox Code Playgroud)

pipeline gitlab-ci

11
推荐指数
1
解决办法
5259
查看次数

Azure Devops 管道仅在合并时触发

我正在寻找一种仅在成功(或尝试)拉取请求合并时触发 Azure 管道的方法。

我现在有 :

trigger:
 branches:
  include:
    - DEV

steps:
- script: FOO
Run Code Online (Sandbox Code Playgroud)

但每次 DEV 分支发生更改时都会运行,我想避免这种情况。

此外,我想要一个编程响应,而不是每次都通过用户界面。

编辑:发生了一件奇怪的事情

condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
Run Code Online (Sandbox Code Playgroud)

得到:

Expanded: and(True, eq('IndividualCI', 'PullRequest'))" 
Run Code Online (Sandbox Code Playgroud)

在做公关时,因此没有达到预期效果

pipeline git-merge azure-devops cicd

11
推荐指数
1
解决办法
1万
查看次数

Scrapy:对数据库的多个返回/项目的建议

为了进一步详细说明这个问题的标题:我正在从电影网站上删除信息.我目前有一个MySQL填充了movie titles,movie urls等等的数据库.我现在urls要从数据库中取出它们并将它们设置为我start_urls的新数据库spider.每个url都是[插入abritrary电影]网页的链接,传达更多信息.我感兴趣的信息是:

  • 经销商(即福克斯)
  • 评级(即Pg-13)
  • 导向器
  • 流派(即喜剧)
  • 演员
  • 生产者/秒

其中,发行人,评级,导演和流派将从每个电影网页(一个评级,一个导演等)中与他们相关联.当然会有多个演员,并且取决于多个制片人(大片电影/大多数电影).这是我遇到问题的地方.我想建立一个pipeline' which puts each piece of info in an appropriatewithin myMySQL database. So, a table for director, a table for rating, etc. Each table will also have电影标题`.我可以这样说明问题本身:

我无法协调如何pipeline用适当的方法构建一个合适的spider.我不确定我是否可以从一个蜘蛛返回多个东西并将它们发送到不同的pipelines(创建不同的项来处理single属性,以及一个不同的项来处理'多个'属性)或是否使用相同的管道并以某种方式指定什么去哪里(不确定我是否只能在刮痧后返回一件事).我将展示我的代码,希望问题会变得更加清晰.*注意:它还没有完成 - 我只是想填写如何做到这一点的空白

蜘蛛:

  class ActorSpider(BaseSpider):
  import sys; sys.path.append("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages")
  import MySQLdb
  db = MySQLdb.connect(db = 'testdb', user='testuser', …
Run Code Online (Sandbox Code Playgroud)

pipeline multiple-tables scrapy

10
推荐指数
1
解决办法
3996
查看次数

TPL Dataflow管道设计基础知识

我尝试使用系统资源的最佳使用来创建设计良好的TPL数据流管道.我的项目是一个HTML解析器,它将解析后的值添加到SQL Server DB中.我已经拥有了我未来管道的所有方法,现在我的问题是将它们放在Dataflow块中的最佳方法是什么,以及我应该使用多少块?一些方法是CPU绑定的,其中一些方法 - I/O绑定(从Internet加载,SQL Server数据库查询).现在我认为将每个I/O操作放在单独的块中就像这个方案一样正确: TPL数据流管道

在这种情况下设计管道的基本规则是什么?

.net pipeline task-parallel-library tpl-dataflow

10
推荐指数
1
解决办法
944
查看次数

将自定义函数放入 Sklearn 管道中

在我的分类方案中,有几个步骤,包括:

  1. SMOTE(合成少数过采样技术)
  2. 特征选择的 Fisher 标准
  3. 标准化(Z-score 标准化)
  4. SVC(支持向量分类器)

在上述方案中要调整的主要参数是百分位数 (2.) 和 SVC (4.) 的超参数,我想通过网格搜索进行调整。

当前的解决方案构建了一个“部分”管道,包括方案中的第 3 步和第 4 步,并将方案clf = Pipeline([('normal',preprocessing.StandardScaler()),('svc',svm.SVC(class_weight='auto'))]) 分解为两部分:

  1. 调整特征的百分位数以保持通过第一次网格搜索

    skf = StratifiedKFold(y)
    for train_ind, test_ind in skf:
        X_train, X_test, y_train, y_test = X[train_ind], X[test_ind], y[train_ind], y[test_ind]
        # SMOTE synthesizes the training data (we want to keep test data intact)
        X_train, y_train = SMOTE(X_train, y_train)
        for percentile in percentiles:
            # Fisher returns the indices of the selected features specified by the parameter 'percentile'
            selected_ind = Fisher(X_train, …
    Run Code Online (Sandbox Code Playgroud)

pipeline machine-learning feature-selection scikit-learn cross-validation

10
推荐指数
2
解决办法
2万
查看次数

如何在Sklearn管道中进行Onehotencoding

我正在尝试对我的Pandas数据帧的分类变量进行一次编码,其中包括分类变量和连续变量.我意识到这可以通过pandas .get_dummies()函数轻松完成,但我需要使用管道,以便稍后我可以生成PMML文件.

这是创建映射器的代码.我想编码的分类变量存储在名为"dummies"的列表中.

from sklearn_pandas import DataFrameMapper
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder

mapper = DataFrameMapper(
    [(d, LabelEncoder()) for d in dummies] +
    [(d, OneHotEncoder()) for d in dummies]
)
Run Code Online (Sandbox Code Playgroud)

这是创建管道的代码,包括映射器和线性回归.

from sklearn2pmml import PMMLPipeline
from sklearn.linear_model import LinearRegression

lm = PMMLPipeline([("mapper", mapper),
                   ("regressor", LinearRegression())])
Run Code Online (Sandbox Code Playgroud)

当我现在尝试拟合('features'是一个数据帧,并''目标'一系列)时,它会给出一个错误'无法将字符串转换为浮点数'.

lm.fit(features, targets)
Run Code Online (Sandbox Code Playgroud)

谁可以帮助我?我非常渴望工作管道,包括数据的预处理...提前谢谢!

python pipeline scikit-learn sklearn-pandas

10
推荐指数
1
解决办法
5434
查看次数