Я использую общую библиотеку, а не общую переменную, но я думаю, что это аналогичная ситуация. Я не использую параметр $class
, но я вызываю непосредственно одну из функций, предложенную генератором фрагментов конвейера. У вас может быть список здесь . В приведенном ниже примере я использую привязку usernameColonPassword
. В конвейере я создаю экземпляр утилит класса и передаю конструктору this
. Затем в библиотеке я использую объект step
для доступа к шагам конвейера (например, withCredentials
или usernameColonPassword
).
class Utilities implements Serializable {
def steps
Utilities(steps) {
this.steps = steps
}
def doArchiveToNexus(String credentials, String artifact, String artifact_registry_path){
try {
steps.withCredentials([steps.usernameColonPassword(credentialsId: credentials, variable: 'JENKINS_USER')]) {
steps.sh "curl --user " + '${JENKINS_USER}' + " --upload-file ${artifact} ${artifact_registry_path}"
}
}catch (error){
steps.echo error.getMessage()
throw error
}
}
}
Используйте read_csv
для DataFrame
и затем pivot
с cumcount
для счетчика для нового индекса:
import pandas as pd
temp=u"""Name,Kamath
Age,23
Sex,Male
Company,ACC
Vehicle,Car
Name,Ram
Age,32
Sex,Male
Company,CCA
Vehicle,Bike
Name,Reena
Age,26
Sex,Female
Company,BARC
Vehicle,Cycle"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.txt'
df = pd.read_csv(pd.compat.StringIO(temp), names=['a','b'])
<час> print (df)
a b
0 Name Kamath
1 Age 23
2 Sex Male
3 Company ACC
4 Vehicle Car
5 Name Ram
6 Age 32
7 Sex Male
8 Company CCA
9 Vehicle Bike
10 Name Reena
11 Age 26
12 Sex Female
13 Company BARC
14 Vehicle Cycle
<час> df = pd.pivot(index=df.groupby('a').cumcount(),
columns=df['a'],
values=df['b'])
print (df)
a Age Company Name Sex Vehicle
0 23 ACC Kamath Male Car
1 32 CCA Ram Male Bike
2 26 BARC Reena Female Cycle