TDCRPy 2.0.9__py3-none-any.whl → 2.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of TDCRPy might be problematic. Click here for more details.

tdcrpy/TDCRPy.py CHANGED
@@ -691,7 +691,7 @@ def TDCRPy(L, Rad, pmf_1, N, kB, V, mode="eff", Display=False, barp=False, Smode
691
691
 
692
692
  if p == "electron" or ("Auger" in p): col1 = "1"
693
693
  elif p == "gamma" or ("X" in p): col1 = "2"
694
- elif p == "beta+": col1 = "3"
694
+ elif p == "positron": col1 = "3"
695
695
  elif p == "alpha": col1 = "4"
696
696
  else: writeOn = False
697
697
 
@@ -709,7 +709,7 @@ def TDCRPy(L, Rad, pmf_1, N, kB, V, mode="eff", Display=False, barp=False, Smode
709
709
 
710
710
  if p == "electron" or ("Auger" in p): col1 = "1"
711
711
  elif p == "gamma" or ("X" in p): col1 = "2"
712
- elif p == "beta+": col1 = "3"
712
+ elif p == "positron": col1 = "3"
713
713
  elif p == "alpha": col1 = "4"
714
714
  else: writeOn = False
715
715
 
@@ -825,7 +825,7 @@ def TDCRPy(L, Rad, pmf_1, N, kB, V, mode="eff", Display=False, barp=False, Smode
825
825
 
826
826
  if p == "electron" or ("Auger" in p): col1 = "1"
827
827
  elif p == "gamma" or ("X" in p): col1 = "2"
828
- elif p == "beta+": col1 = "3"
828
+ elif p == "positron": col1 = "3"
829
829
  elif p == "alpha": col1 = "4"
830
830
  else: writeOn = False
831
831
 
@@ -843,7 +843,7 @@ def TDCRPy(L, Rad, pmf_1, N, kB, V, mode="eff", Display=False, barp=False, Smode
843
843
 
844
844
  if p == "electron" or ("Auger" in p): col1 = "1"
845
845
  elif p == "gamma" or ("X" in p): col1 = "2"
846
- elif p == "beta+": col1 = "3"
846
+ elif p == "positron": col1 = "3"
847
847
  elif p == "alpha": col1 = "4"
848
848
  else: writeOn = False
849
849
 
@@ -911,7 +911,7 @@ def TDCRPy(L, Rad, pmf_1, N, kB, V, mode="eff", Display=False, barp=False, Smode
911
911
 
912
912
  if p == "electron" or ("Auger" in p): col1 = "1"
913
913
  elif p == "gamma" or ("X" in p): col1 = "2"
914
- elif p == "beta+": col1 = "3"
914
+ elif p == "positron": col1 = "3"
915
915
  elif p == "alpha": col1 = "4"
916
916
  else: writeOn = False
917
917
 
@@ -929,7 +929,7 @@ def TDCRPy(L, Rad, pmf_1, N, kB, V, mode="eff", Display=False, barp=False, Smode
929
929
 
930
930
  if p == "electron" or ("Auger" in p): col1 = "1"
931
931
  elif p == "gamma" or ("X" in p): col1 = "2"
932
- elif p == "beta+": col1 = "3"
932
+ elif p == "positron": col1 = "3"
933
933
  elif p == "alpha": col1 = "4"
934
934
  else: writeOn = False
935
935
 
@@ -1129,113 +1129,171 @@ def eff(TD, Rad, pmf_1, kB, V, N=10000, L=1, maxiter=20, xatol=1e-7, disp=False)
1129
1129
  return L0, L, eff_S, u_eff_S, eff_D, u_eff_D, eff_T, u_eff_T, eff_AB, u_eff_AB, eff_BC, u_eff_BC, eff_AC, u_eff_AC, eff_D2, u_eff_D2
1130
1130
 
1131
1131
 
1132
- # def effA(TD, Rad, pmf_1, kB, V, L=1, maxiter=20, xatol=1e-7, disp=False):
1133
- # """
1134
- # Caclulation of the efficiency of a TDCR system based on the model TDCRPy (analytical model).
1135
- # This function includes optimization procedures from scipy.
1132
+ def effA(TD, Rad, pmf_1, kB, V, L=1, maxiter=20, xatol=1e-7, disp=False):
1133
+ """
1134
+ Caclulation of the efficiency of a TDCR system based on the model TDCRPy (analytical model).
1135
+ This function includes optimization procedures from scipy.
1136
1136
 
1137
- # Parameters
1138
- # ----------
1139
- # TD : float or tuple
1140
- # measurements. If TD is float, then TD is the measured TDCR parameter. If TD is tuple, then TD must contain the global TDCR parameter followed by specific ones (T/B, T/AB, T/BC, T/AC)
1141
- # Rad : string
1142
- # List of radionuclides (eg. "H-3, Co-60").
1143
- # pmf_1 : string
1144
- # list of probability of each radionuclide (eg. "0.8, 0.2").
1145
- # kB : float
1146
- # Birks constant in cm/keV.
1147
- # V : float
1148
- # volume of the scintillator in ml.
1149
- # maxiter : interger, optional
1150
- # maximum number of iterations of the optimization procedures
1151
- # xatol : float
1152
- # convergence parameter of the Nelder Mead optimisation
1153
- # disp : Boolean
1154
- # to display detailed results of the procedure. Default is False.
1137
+ Parameters
1138
+ ----------
1139
+ TD : float or tuple
1140
+ measurements. If TD is float, then TD is the measured TDCR parameter. If TD is tuple, then TD must contain the global TDCR parameter followed by specific ones (T/D, T/AB, T/BC, T/AC)
1141
+ Rad : string
1142
+ List of radionuclides (eg. "H-3, Co-60").
1143
+ pmf_1 : string
1144
+ list of probability of each radionuclide (eg. "0.8, 0.2").
1145
+ kB : float
1146
+ Birks constant in cm/keV.
1147
+ V : float
1148
+ volume of the scintillator in ml.
1149
+ maxiter : interger, optional
1150
+ maximum number of iterations of the optimization procedures
1151
+ xatol : float
1152
+ convergence parameter of the Nelder Mead optimisation
1153
+ disp : Boolean
1154
+ to display detailed results of the procedure. Default is False.
1155
1155
 
1156
- # Returns
1157
- # -------
1158
- # L0 : float
1159
- # global free parameter.
1160
- # L : tuple
1161
- # free parameters (relevant for the asymetric model).
1162
- # eff_S : float
1163
- # counting efficiency of single events.
1164
- # u_eff_S : float
1165
- # standard uncertainty of eff_S.
1166
- # eff_D : float
1167
- # counting efficiency of double coincidences.
1168
- # u_eff_D : float
1169
- # standard uncertainty of eff_D.
1170
- # eff_T : float
1171
- # counting efficiency of triple coincidences.
1172
- # u_eff_T : float
1173
- # standard uncertainty of eff_T.
1174
- # eff_AB : float
1175
- # counting efficiency of coincidences AB.
1176
- # u_eff_AB : float
1177
- # standard uncertainty of eff_AB.
1178
- # eff_BC : float
1179
- # counting efficiency of coincidences BC.
1180
- # u_eff_BC : float
1181
- # standard uncertainty of eff_BC.
1182
- # eff_AC : float
1183
- # counting efficiency of coincidences AC.
1184
- # u_eff_AC : float
1185
- # standard uncertainty of eff_AC.
1186
- # eff_D : float
1187
- # counting efficiency of double coincidences in C/N configuation (not relevant).
1188
- # u_eff_D : float
1189
- # standard uncertainty of eff_D in C/N configuation (not relevant).
1156
+ Returns
1157
+ -------
1158
+ L0 : float
1159
+ global free parameter.
1160
+ L : tuple
1161
+ free parameters (relevant for the asymetric model).
1162
+ eff_S : float
1163
+ counting efficiency of single events.
1164
+ u_eff_S : float
1165
+ standard uncertainty of eff_S.
1166
+ eff_D : float
1167
+ counting efficiency of double coincidences.
1168
+ u_eff_D : float
1169
+ standard uncertainty of eff_D.
1170
+ eff_T : float
1171
+ counting efficiency of triple coincidences.
1172
+ u_eff_T : float
1173
+ standard uncertainty of eff_T.
1174
+ eff_AB : float
1175
+ counting efficiency of coincidences AB.
1176
+ u_eff_AB : float
1177
+ standard uncertainty of eff_AB.
1178
+ eff_BC : float
1179
+ counting efficiency of coincidences BC.
1180
+ u_eff_BC : float
1181
+ standard uncertainty of eff_BC.
1182
+ eff_AC : float
1183
+ counting efficiency of coincidences AC.
1184
+ u_eff_AC : float
1185
+ standard uncertainty of eff_AC.
1186
+ eff_D : float
1187
+ counting efficiency of double coincidences in C/N configuation (not relevant).
1188
+ u_eff_D : float
1189
+ standard uncertainty of eff_D in C/N configuation (not relevant).
1190
1190
 
1191
- # """
1192
- # if isinstance(TD, (tuple, list)):
1193
- # symm = False
1194
- # else:
1195
- # symm = True
1191
+ """
1192
+ if isinstance(TD, (tuple, list)):
1193
+ symm = False
1194
+ else:
1195
+ symm = True
1196
1196
 
1197
- # if symm: r=opt.minimize_scalar(tl.modelAnalytical, args=(TD, TD, TD, TD, Rad, kB, V, "res", True, 1e3), method='bounded', bounds = (0.1, 5), options={'disp': disp, 'maxiter':maxiter})
1198
- # else: r=opt.minimize_scalar(tl.modelAnalytical, args=(TD[0], TD[1], TD[2], TD[3], Rad, kB, V, "res", True, 1e3), method='bounded', bounds = (0.1, 5), options={'disp': disp, 'maxiter':maxiter})
1199
- # L0=r.x
1200
- # L=(L0, L0, L0)
1201
- # print(f"global free parameter = {L0} keV-1")
1197
+ if symm: r=opt.minimize_scalar(tl.modelAnalytical, args=(TD, TD, TD, TD, Rad, kB, V, "res", 1e3), method='bounded', bounds = (0.1, 5), options={'disp': disp, 'maxiter':maxiter})
1198
+ else: r=opt.minimize_scalar(tl.modelAnalytical, args=(TD[0], TD[1], TD[2], TD[3], Rad, kB, V, "res", 1e3), method='bounded', bounds = (0.1, 5), options={'disp': disp, 'maxiter':maxiter})
1199
+ L0=r.x
1200
+ L=(L0, L0, L0)
1201
+ print(f"global free parameter = {L0} keV-1")
1202
1202
 
1203
- # if not symm:
1204
- # r=opt.minimize(tl.modelAnalytical, L, args=(TD[0], TD[1], TD[2], TD[3], Rad, kB, V, "res", True, 1e3), method='nelder-mead',options={'xatol': xatol, 'disp': disp, 'maxiter':maxiter})
1205
- # L=r.x
1206
- # print(f"free parameters = {L} keV-1")
1203
+ if not symm:
1204
+ r=opt.minimize(tl.modelAnalytical, L, args=(TD[0], TD[1], TD[2], TD[3], Rad, kB, V, "res", 1e3), method='nelder-mead',options={'xatol': xatol, 'disp': disp, 'maxiter':maxiter})
1205
+ L=r.x
1206
+ print(f"free parameters = {L} keV-1")
1207
1207
 
1208
- # if symm: out=tl.modelAnalytical(L, TD, TD, TD, TD, Rad, kB, V, "eff", True, 1e3)
1209
- # else: out=tl.modelAnalytical(L, TD[0], TD[1], TD[2], TD[3], Rad, kB, V, "eff", True, 1e3)
1210
- # eff_S = out[0]
1211
- # u_eff_S = out[1]
1212
- # eff_D = out[2]
1213
- # u_eff_D = out[3]
1214
- # eff_T = out[4]
1215
- # u_eff_T = out[5]
1216
- # eff_AB = out[6]
1217
- # u_eff_AB = out[7]
1218
- # eff_BC = out[8]
1219
- # u_eff_BC = out[9]
1220
- # eff_AC = out[10]
1221
- # u_eff_AC = out[11]
1208
+ if symm: out=tl.modelAnalytical(L, TD, TD, TD, TD, Rad, kB, V, "eff", 1e3)
1209
+ else: out=tl.modelAnalytical(L, TD[0], TD[1], TD[2], TD[3], Rad, kB, V, "eff", 1e3)
1210
+ eff_S = out[0]
1211
+ eff_D = out[1]
1212
+ eff_T = out[2]
1213
+ # u_eff_S = out[1]
1214
+ # eff_D = out[2]
1215
+ # u_eff_D = out[3]
1216
+ # eff_T = out[4]
1217
+ # u_eff_T = out[5]
1218
+ # eff_AB = out[6]
1219
+ # u_eff_AB = out[7]
1220
+ # eff_BC = out[8]
1221
+ # u_eff_BC = out[9]
1222
+ # eff_AC = out[10]
1223
+ # u_eff_AC = out[11]
1222
1224
 
1223
- # return L0, L, eff_S, u_eff_S, eff_D, u_eff_D, eff_T, u_eff_T, eff_AB, u_eff_AB, eff_BC, u_eff_BC, eff_AC, u_eff_AC
1225
+ return L0, L, eff_S, eff_D, eff_T #, u_eff_T, eff_AB, u_eff_AB, eff_BC, u_eff_BC, eff_AC, u_eff_AC, u_eff_S, u_eff_D,
1226
+
1227
+
1228
+
1229
+ # mode = "eff" # ask for efficiency calculation
1230
+ # Rad="Na-22" # radionuclides
1231
+ # pmf_1="1" # relatives fractions of the radionulides
1232
+ # N = 1000 # number of Monte Carlo trials
1233
+ # kB =1.0e-5 # Birks constant in cm keV-1
1234
+ # V = 10 # volume of scintillator in mL
1235
+ # L=np.logspace(-3,2,num=100) # free parameter in keV-1
1236
+
1237
+ # # TDCRPy(1, Rad, pmf_1, 10, kB, V, mode, Display= True, barp=False, record=True)
1238
+ # # Record decay histories in temporary files
1239
+ # TDCRPy(L[0], Rad, pmf_1, N, kB, V, mode, barp=True, record=True)
1240
+
1241
+ # effS, u_effS, effD, u_effD, effT, u_effT, effD2, u_effD2 = [], [],[], [],[], [], [], []
1242
+ # for l in tqdm(L, desc="free parameters ", unit=" iterations"):
1243
+ # out = TDCRPy(l, Rad, pmf_1, N, kB, V, mode, readRecHist=True)
1244
+ # effS.append(out[2])
1245
+ # u_effS.append(out[3])
1246
+ # effD.append(out[2])
1247
+ # u_effD.append(out[3])
1248
+ # effT.append(out[4])
1249
+ # u_effT.append(out[5])
1250
+ # effD2.append(out[12])
1251
+ # u_effD2.append(out[13])
1252
+
1253
+ # effS=np.asarray(effS)
1254
+ # effT=np.asarray(effT)
1255
+ # effD=np.asarray(effD)
1256
+ # effD2=np.asarray(effD2)
1257
+ # u_effS=np.asarray(u_effS)
1258
+ # u_effT=np.asarray(u_effT)
1259
+ # u_effD=np.asarray(u_effD)
1260
+ # u_effD2=np.asarray(u_effD2)
1224
1261
 
1262
+ # tdcr=effT/effD
1263
+ # u_tdcr=np.sqrt(u_effD**2*effT**2/effD**4+u_effT**2/effD**2)
1225
1264
 
1265
+ # import matplotlib.pyplot as plt
1266
+ # plt.figure("efficiency vs free parameter")
1267
+ # plt.clf()
1268
+ # plt.errorbar(L,effD,yerr=u_effD,fmt="-k",label="double coincidences")
1269
+ # plt.errorbar(L,effT,yerr=u_effT,fmt="-r",label="triple coincidences")
1270
+ # plt.errorbar(L,effD2,yerr=u_effD2,fmt="-g",label="double coincidences (CIEMAT/NIST)")
1271
+ # plt.xscale('log')
1272
+ # plt.xlabel(r'$L$ /keV$^{-1}$', fontsize=14)
1273
+ # plt.ylabel(r'$\epsilon$', fontsize=14)
1274
+ # plt.legend()
1226
1275
 
1276
+ # plt.figure("efficiency vs TDCR")
1277
+ # plt.clf()
1278
+ # plt.errorbar(tdcr,effD,xerr=u_tdcr,yerr=u_effD,fmt="-k")
1279
+ # #plt.xscale('log')
1280
+ # plt.xlabel(r'$R_T/R_D$', fontsize=14)
1281
+ # plt.ylabel(r'$\epsilon_{D}$', fontsize=14)
1282
+ # plt.show()
1227
1283
 
1228
1284
 
1229
1285
  # L = 1
1230
1286
  # # L = (1.1, 1.05, 1.15)
1231
- # TD = 0.977667386529166
1232
- # # TD = (0.977667386529166, 0.992232838598821, 0.992343419459002, 0.99275350064608)
1233
- # # # TD = (0.977667386529166, 0.995232838598821, 0.990343419459002, 0.99275350064608)
1234
- # Rad="Co-60"
1287
+ # # TD = 0.977667386529166
1288
+ # # TD = (0.9767359812638453, 0.9925429293804757, 0.991829757077315, 0.9919970813639295) # source 1
1289
+ # # TD = (0.9768862920127371, 0.9928478299182348, 0.9912531441227223, 0.9924249578285456) # source 2
1290
+ # # TD = (0.9769014488454436, 0.9918130431206161, 0.9920156754198314, 0.9927119011073454) # source 3
1291
+ # TD = (0.9764032345164899, 0.9928417189012709, 0.9911455450383777, 0.9920402844839974) # source 4
1292
+ # Rad="Tc-99"
1235
1293
  # pmf_1="1"
1236
- # N = 1000
1237
- # kB =1.0e-5
1238
- # V = 10
1294
+ # N = 10000
1295
+ # kB =1.4e-5
1296
+ # V = 16
1239
1297
  # mode = "eff"
1240
1298
 
1241
1299
 
@@ -1244,6 +1302,7 @@ def eff(TD, Rad, pmf_1, kB, V, N=10000, L=1, maxiter=20, xatol=1e-7, disp=False)
1244
1302
  # # # out = TDCRPy(L, Rad, pmf_1, N, kB, V, Display = False, record = False, readRecHist = True)
1245
1303
  # # # print("result", out)
1246
1304
 
1247
- # # out = eff(TD, Rad, pmf_1, kB, V, N=1000, L=1, maxiter=20, xatol=1e-7)
1248
- # out = effA(TD, Rad, pmf_1, kB, V, L=1, maxiter=20, xatol=1e-7)
1249
- # print(out)
1305
+ # outS = eff(TD, Rad, pmf_1, kB, V, N=10000, L=1, maxiter=20, xatol=1e-7)
1306
+ # outA = effA(TD, Rad, pmf_1, kB, V, L=1, maxiter=20, xatol=1e-7)
1307
+ # print(outS)
1308
+ # print(outA)
tdcrpy/TDCR_model_lib.py CHANGED
@@ -1277,7 +1277,7 @@ def Em_e(Ei, Ed, kB, nE, Et = Einterp_e*1e3, kB_vec = kB_e):
1277
1277
  """
1278
1278
  if Ed <= Et or Ei != Ed:
1279
1279
  # run the accurate quenching model
1280
- r = E_quench_e(Ei,Ed,kB,nE)
1280
+ r = E_quench_e(Ei,Ed,kB,int(nE))
1281
1281
  else:
1282
1282
  # run interpolation
1283
1283
  r = run_interpolate(kB_vec, kB , Ei_electron, Em_electron, Ed)
@@ -2648,7 +2648,7 @@ def relaxation_atom_ph(lacune,element,v):
2648
2648
 
2649
2649
 
2650
2650
 
2651
- def modelAnalytical(L,TD,TAB,TBC,TAC,rad,kB,V,mode,symm,ne):
2651
+ def modelAnalytical(L,TD,TAB,TBC,TAC,rad,kB,V,mode,ne):
2652
2652
  """
2653
2653
  TDCR analytical model that is used for pure beta emitting radionuclides
2654
2654
 
@@ -2672,8 +2672,6 @@ def modelAnalytical(L,TD,TAB,TBC,TAC,rad,kB,V,mode,symm,ne):
2672
2672
  volume of the scintillator in ml. run only for 10 ml
2673
2673
  mode : string
2674
2674
  "res" to return the residual, "eff" to return efficiencies.
2675
- symm : boolean
2676
- "True" for symetrical model, "False" for symetrical model.
2677
2675
  nE : integer
2678
2676
  Number of bins for the quenching function.
2679
2677
 
@@ -2699,7 +2697,7 @@ def modelAnalytical(L,TD,TAB,TBC,TAC,rad,kB,V,mode,symm,ne):
2699
2697
  em[i] = Em_e(ei*1e3,ei*1e3,kB*1e3,ne)*1e-3
2700
2698
 
2701
2699
 
2702
- if symm:
2700
+ if type(L)==float or isinstance(L, np.float64):
2703
2701
  eff_S = sum(p*(1-np.exp(-L*em/3)))
2704
2702
  eff_T = sum(p*(1-np.exp(-L*em/3))**3)
2705
2703
  eff_D = sum(p*(3*(1-np.exp(-L*em/3))**2-2*(1-np.exp(-L*em/3))**3))
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: TDCRPy
3
- Version: 2.0.9
3
+ Version: 2.2.0
4
4
  Summary: TDCR model
5
5
  Home-page: https://pypi.org/project/TDCRPy/
6
6
  Author: RomainCoulon (Romain Coulon)
@@ -27,6 +27,18 @@ Requires-Dist: scipy
27
27
  Requires-Dist: configparser
28
28
  Requires-Dist: importlib.resources
29
29
  Requires-Dist: matplotlib
30
+ Dynamic: author
31
+ Dynamic: author-email
32
+ Dynamic: classifier
33
+ Dynamic: description
34
+ Dynamic: description-content-type
35
+ Dynamic: home-page
36
+ Dynamic: keywords
37
+ Dynamic: license-file
38
+ Dynamic: project-url
39
+ Dynamic: requires-dist
40
+ Dynamic: requires-python
41
+ Dynamic: summary
30
42
 
31
43
  # 1. About TDCRPy
32
44
 
@@ -1,6 +1,6 @@
1
- tdcrpy/TDCRPy.py,sha256=WRH8ASoJSEXAl3Vw0t01DZelIJ4Kguu97nEriHuLq-g,64862
1
+ tdcrpy/TDCRPy.py,sha256=W_bP1lC0s1zgIEqio9CjynO8yKKiVVYXA-VvPZbdHJw,66998
2
2
  tdcrpy/TDCRPy1.py,sha256=QTBZh5B5JWnGB0BQfD-cFmwA9W080OD4sG-aj50-ejo,38106
3
- tdcrpy/TDCR_model_lib.py,sha256=3XsTOUqO8tE0NMOSrBOV2H449jvbbjXfH5jrHcaSqdM,126576
3
+ tdcrpy/TDCR_model_lib.py,sha256=o7pMbr8IsnfzC4RIDRaZjQ_CY65HmcVSBEgPHLxNWRI,126529
4
4
  tdcrpy/TDCRoptimize.py,sha256=c2XIGveeLdVYYek4Rg6dygMvVA2xIrIkMb3L-_jUucM,6496
5
5
  tdcrpy/__init__.py,sha256=9Djir8dPNchcJVQvhl-oRHEOsoDkiZlkOhWT-eHR7wQ,95
6
6
  tdcrpy/config.toml,sha256=d_olKEgxfobBHkZ2wEj9EgKE7I8Wbpim9ZAsi5ImFxk,1470
@@ -74,8 +74,8 @@ tdcrpy/docs/_build/html/source/modules.html,sha256=Jf-qxVBId0UgpwyvYuyjtMNG-ezPO
74
74
  tdcrpy/docs/_build/html/source/tdcrpy.html,sha256=-38lHMNFB22p1tWJEeN3yDqfDiCYE304vxDamO1-iRc,3779
75
75
  tdcrpy/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
76
  tdcrpy/test/test_tdcrpy.py,sha256=JINqSEMFoNpptE4f3h6ZzTYW1rBx90KkaoQzltSg-No,4692
77
- TDCRPy-2.0.9.dist-info/LICENCE.md,sha256=ZTpWyGU3qv_iwEpgvCijoCuCYpOPpyzJCgOk46WpUKU,1066
78
- TDCRPy-2.0.9.dist-info/METADATA,sha256=0xVdi8fVqWioXTFpTKmsc8SLQ7d45sZtXCoOpqXBaKc,45040
79
- TDCRPy-2.0.9.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
80
- TDCRPy-2.0.9.dist-info/top_level.txt,sha256=f4vzFFcKSEnonAACs0ZXuRczmroLLqtPTqXFymU_VU0,14
81
- TDCRPy-2.0.9.dist-info/RECORD,,
77
+ tdcrpy-2.2.0.dist-info/licenses/LICENCE.md,sha256=ZTpWyGU3qv_iwEpgvCijoCuCYpOPpyzJCgOk46WpUKU,1066
78
+ tdcrpy-2.2.0.dist-info/METADATA,sha256=8LauuFHTb8gVFJn1Knb38BX_wptMRdl6slBbJKPDN_I,45298
79
+ tdcrpy-2.2.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
80
+ tdcrpy-2.2.0.dist-info/top_level.txt,sha256=f4vzFFcKSEnonAACs0ZXuRczmroLLqtPTqXFymU_VU0,14
81
+ tdcrpy-2.2.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.2)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5