elp-mpp02 0.0.4__py3-none-any.whl → 0.0.6__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.
elp_mpp02/__init__.py CHANGED
@@ -1 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+ # SPDX-License-Identifier: EUPL-1.2
3
+ #
4
+ # Copyright (c) 2019-2025 Marc van der Sluys - Nikhef/Utrecht University - marc.vandersluys.nl
5
+ #
6
+ # This file is part of the evTool Python package:
7
+ # Analyse and display output from the binary stellar-evolution code ev (a.k.a. STARS or TWIN).
8
+ # See: https://github.com/MarcvdSluys/evTool
9
+ #
10
+ # This is free software: you can redistribute it and/or modify it under the terms of the European Union
11
+ # Public Licence 1.2 (EUPL 1.2). This software is distributed in the hope that it will be useful, but
12
+ # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13
+ # PURPOSE. See the EU Public Licence for more details. You should have received a copy of the European
14
+ # Union Public Licence along with this code. If not, see <https://www.eupl.eu/1.2/en/>.
15
+
16
+
17
+ """Accurate Moon positions using the Lunar solution ELP/MPP02
18
+
19
+ This module uses the semi-analytical Lunar solution ELP2000/MPP02 to compute the geocentric position of the
20
+ Moon in the dynamical mean ecliptic and equinox of J2000. This Python code has been adapted from the Fortran
21
+ version in libTheSky.
22
+
23
+ """
24
+
25
+
1
26
  name = "elp-mpp02"
27
+ __author__ = 'Marc van der Sluys - Nikhef/Utrecht University - marc.vandersluys.nl'
elp_mpp02/mpp02.py CHANGED
@@ -27,7 +27,7 @@ References:
27
27
 
28
28
  - Refereed article: Chapront J., Francou G., A&A 404, 735 (2003)
29
29
 
30
- - libTheSky: http://libthesky.sourceforge.net/
30
+ - libTheSky: https://libthesky.sourceforge.net/
31
31
 
32
32
 
33
33
  Dependencies:
@@ -37,29 +37,31 @@ Apart from the standard Python modules math and sys, numpy and fortranformat mus
37
37
 
38
38
  Copyright:
39
39
 
40
- Copyright (c) 2019 Marc van der Sluys, Radboud University Nijmegen, The Netherlands -
41
- http://astro.ru.nl/~sluys/ (this Python code)
40
+ Copyright (c) 2019-2025 Marc van der Sluys, Department of Physics, Utrecht University, The Netherlands
41
+ and Nikhef (Netherlands institute for high-energy physics and gravitational waves), Amsterdam, The Netherlands -
42
+ https://www.nikhef.nl/~sluys/ (this Python code)
42
43
 
43
44
  This file is part of the ELP/MPP02 Python package,
44
- see: [Pypi URL] / [Github URL]
45
+ see: https://pypi.org/project/elp_mpp02/ / https://github.com/MarcvdSluys/ELP-MPP02
45
46
 
46
- This is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License
47
- as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
47
+ This is free software: you can redistribute it and/or modify it under the terms of the European Union Public
48
+ Licence 1.2 (EUPL 1.2). This software is distributed in the hope that it will be useful, but WITHOUT ANY
49
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
50
+ EU Public Licence for more details. You should have received a copy of the European Union Public Licence
51
+ along with this code. If not, see <https://www.eupl.eu/1.2/en/>.
48
52
 
49
- This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
50
- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
51
53
 
52
- You should have received a copy of the GNU General Public License along with this code. If not, see
53
- <http://www.gnu.org/licenses/>.
54
+ Acknowledgements:
55
+ - Thanks to A. Vähäkangas for bug reports.
54
56
 
55
57
  """
56
58
 
57
59
 
58
- ##############################################################################################################
59
60
  import math as m
60
61
  import numpy.core as np
61
62
  import sys
62
63
 
64
+
63
65
  # Global constants:
64
66
  d2r = m.radians(1) # Degrees to radians
65
67
  r2d = m.degrees(1) # Radians to degrees
@@ -69,6 +71,7 @@ pi2 = pi*2
69
71
  pio2 = pi/2
70
72
  jd2000 = 2451545
71
73
 
74
+
72
75
  # Global variables:
73
76
  modeInit = 999 # := uninitialised
74
77
  dataDir = '.' # Directory where the data files are located (default '.': the current directory)
@@ -91,8 +94,6 @@ p = np.zeros((8,5))
91
94
  delnu=0.; dele=0.; delg=0.; delnp=0.; delep=0.; dtasm=0.; am=0.
92
95
 
93
96
 
94
-
95
- ##############################################################################################################
96
97
  def initialise_and_read_files(mode=0):
97
98
  """Initialise ELP/MPP02 constants and read the data files if necessary
98
99
 
@@ -104,24 +105,23 @@ def initialise_and_read_files(mode=0):
104
105
  """
105
106
 
106
107
  global modeInit
107
- #print("Initialise and read files:", modeInit)
108
+ # print("Initialise and read files:", modeInit)
108
109
 
109
110
  # Initializing of constants and reading the files:
110
111
  ierr = 0
111
- if(mode!=modeInit):
112
+ if mode!=modeInit:
112
113
  initialise(mode)
113
114
  ierr = read_files()
114
- if(ierr!=0): return ierr
115
+ if ierr!=0: return ierr
115
116
 
116
117
  modeInit = mode # Indicate that the data have been initialised
117
- #print("modeInit:", modeInit)
118
+ # print("modeInit:", modeInit)
118
119
  return ierr
119
120
 
120
121
  return ierr
121
122
 
122
123
 
123
124
 
124
- ##############################################################################################################
125
125
  def initialise(mode=0):
126
126
  """Initialization of the constants and parameters used for the evaluation of the ELP/MPP02 series
127
127
 
@@ -135,15 +135,19 @@ def initialise(mode=0):
135
135
 
136
136
  global modeInit, w,eart,peri, dela,zeta, p,delnu,dele,delg,delnp,delep,dtasm,am
137
137
  global p1,p2,p3,p4,p5, q1,q2,q3,q4,q5
138
- #print("Initialise:", modeInit)
138
+ # print("Initialise:", modeInit)
139
139
 
140
140
  Dprec = -0.29965 # Constant for the correction to the constant of precession - source: IAU 2000A
141
141
 
142
+ bp = np.array([
143
+ [ 0.311079095, -0.103837907 ],
144
+ [ -0.4482398e-2, 0.668287e-3 ],
145
+ [ -0.1102485e-2, -0.1298072e-2 ],
146
+ [ 0.1056062e-2, -0.178028e-3 ],
147
+ [ 0.50928e-4, -0.37342e-4 ]
148
+ ]) # (2,5)
142
149
 
143
- bp = np.array([[0.311079095,-0.4482398e-2], [-0.110248500e-2,0.1056062e-2], [0.50928e-4,-0.103837907],
144
- [0.6682870e-3,-0.129807200e-2], [-0.1780280e-3,-0.37342e-4]]) # (5,2)
145
-
146
- if(mode<0 or mode>1): sys.exit('elp_mpp02.mpp02.initialise(): mode must have value 0 or 1, not %i' % mode)
150
+ if mode<0 or mode>1: sys.exit('elp_mpp02.mpp02.initialise(): mode must have value 0 or 1, not %i' % mode)
147
151
 
148
152
  # Constants for the evaluation of the partial derivatives:
149
153
  am = 0.074801329 # Ratio of the mean motions (EMB / Moon)
@@ -153,7 +157,7 @@ def initialise(mode=0):
153
157
 
154
158
 
155
159
  # Corrections to constants:
156
- if(mode==0): # LLR
160
+ if mode==0: # LLR
157
161
  # Values of the corrections to the constants fitted to LLR. Fit 13-05-02 (2 iterations) except Phi
158
162
  # and eps w2_1 and w3_1. See ELPdoc, Table 3 and paper, Table 1
159
163
  Dw1_0 = -0.10525
@@ -224,16 +228,16 @@ def initialise(mode=0):
224
228
 
225
229
  # Corrections to the secular terms of Moon angles. This gives a better (long-term?) fit
226
230
  # to DE 406. See ELPdoc, Table 6/paper, Table 4, line 2:
227
- if(mode==1): # DE 405 / DE 406
228
- w[0,3] -= 0.00018865/r2as
229
- w[0,4] -= 0.00001024/r2as
230
-
231
- w[1,2] += 0.00470602/r2as
232
- w[1,3] -= 0.00025213/r2as
233
-
234
- w[2,2] -= 0.00261070/r2as
235
- w[2,3] -= 0.00010712/r2as
236
-
231
+ if mode==1: # DE 405 / DE 406
232
+ w[0,3] -= 0.00018865/r2as
233
+ w[0,4] -= 0.00001024/r2as
234
+
235
+ w[1,2] += 0.00470602/r2as
236
+ w[1,3] -= 0.00025213/r2as
237
+
238
+ w[2,2] -= 0.00261070/r2as
239
+ w[2,3] -= 0.00010712/r2as
240
+
237
241
 
238
242
  # Corrections to the mean motions of the Moon angles W2 and W3, infered from the modifications of the
239
243
  # constants:
@@ -262,10 +266,10 @@ def initialise(mode=0):
262
266
 
263
267
  # Arguments of Delaunay:
264
268
  for iD in range(5):
265
- dela[0,iD] = w[0,iD] - eart[iD] # D = W1 - Te + 180 degrees
266
- dela[1,iD] = w[0,iD] - w[2,iD] # F = W1 - W3
267
- dela[2,iD] = w[0,iD] - w[1,iD] # l = W1 - W2 mean anomaly of the Moon
268
- dela[3,iD] = eart[iD] - peri[iD] # l' = Te - Pip mean anomaly of EMB
269
+ dela[0,iD] = w[0,iD] - eart[iD] # D = W1 - Te + 180 degrees
270
+ dela[1,iD] = w[0,iD] - w[2,iD] # F = W1 - W3
271
+ dela[2,iD] = w[0,iD] - w[1,iD] # l = W1 - W2 mean anomaly of the Moon
272
+ dela[3,iD] = eart[iD] - peri[iD] # l' = Te - Pip mean anomaly of EMB
269
273
 
270
274
  dela[0,0] += pi
271
275
 
@@ -325,8 +329,6 @@ def initialise(mode=0):
325
329
  return
326
330
 
327
331
 
328
-
329
- ##############################################################################################################
330
332
  def read_files():
331
333
  """Read the six data files containing the ELP/MPP02 series
332
334
 
@@ -336,7 +338,7 @@ def read_files():
336
338
 
337
339
  """
338
340
 
339
- #print("Read files:")
341
+ # print("Read files:")
340
342
  global nmpb,cmpb,fmpb, nper,cper,fper
341
343
  global w,eart,peri, dela,zeta, p,delnu,dele,delg,delnp,delep,dtasm,am
342
344
 
@@ -345,8 +347,8 @@ def read_files():
345
347
  ilu = np.zeros(4) # will contain ints
346
348
  a = 0.
347
349
  b = np.zeros(5)
348
- #ierr=1
349
- #nerr=0
350
+ # ierr=1
351
+ # nerr=0
350
352
 
351
353
  import fortranformat as ff
352
354
  formatMainHeader = ff.FortranRecordReader('(25x,I10)') # Block header format
@@ -357,8 +359,9 @@ def read_files():
357
359
  fileName = dataDir+'/ELP_MAIN.S'+str(iFile+1)
358
360
  try:
359
361
  inFile = open(fileName,'r')
360
- except:
361
- sys.stderr.write('Error opening file. Please ensure that: '+fileName+'\n')
362
+ except Exception as err:
363
+ sys.stderr.write(str(err)+'\n\n')
364
+ sys.stderr.write('Please ensure that:\n')
362
365
  sys.stderr.write(' 1) you downloaded the data files ELP_*.S[123] from '+
363
366
  'ftp://cyrano-se.obspm.fr/pub/2_lunar_solutions/2_elpmpp02/\n')
364
367
  sys.stderr.write(' 2) you set the variable mpp.dataDir to the correct value\n')
@@ -366,7 +369,7 @@ def read_files():
366
369
 
367
370
  line = inFile.readline()
368
371
  nmpb[iFile,0] = formatMainHeader.read(line)[0]
369
- #if(nerr!=0): return 3
372
+ # if nerr!=0: return 3
370
373
 
371
374
  nmpb[iFile,1] = ir+1
372
375
  nmpb[iFile,2] = nmpb[iFile,0] + nmpb[iFile,1] - 1
@@ -375,10 +378,10 @@ def read_files():
375
378
  for iLine in range(nLines):
376
379
  line = inFile.readline()
377
380
  ilu[0],ilu[1],ilu[2],ilu[3], a, b[0],b[1],b[2],b[3],b[4] = formatMainBody.read(line)
378
- #if(nerr!=0): return 4
381
+ # if nerr!=0: return 4
379
382
 
380
383
  tgv = b[0] + dtasm*b[4]
381
- if(iFile==2): a -= 2*a*delnu/3
384
+ if iFile==2: a -= 2*a*delnu/3
382
385
  cmpb[ir] = a + tgv*(delnp-am*delnu) + b[1]*delg + b[2]*dele + b[3]*delep
383
386
 
384
387
  for k in range(5):
@@ -386,7 +389,7 @@ def read_files():
386
389
  for i in range(4):
387
390
  fmpb[k,ir] += ilu[i] * dela[i,k]
388
391
 
389
- if(iFile==2): fmpb[0,ir] += pio2
392
+ if iFile==2: fmpb[0,ir] += pio2
390
393
  ir += 1
391
394
 
392
395
  inFile.close()
@@ -407,33 +410,33 @@ def read_files():
407
410
  fileName = dataDir+'/ELP_PERT.S'+str(iFile+1)
408
411
  try:
409
412
  inFile = open(fileName,'r')
410
- except:
411
- sys.stderr.write('Error opening file: '+fileName+'\n')
413
+ except Exception as err:
414
+ sys.stderr.write(str(err)+'\n')
412
415
  exit(1)
413
416
 
414
417
  for it in range(4):
415
- #if(nerr!=0): return 6
418
+ # if nerr!=0: return 6
416
419
  line = inFile.readline()
417
420
  nper[iFile,it,0],ipt = formatPertHeader.read(line)
418
421
 
419
422
  nper[iFile,it,1] = ir+1
420
423
  nper[iFile,it,2] = nper[iFile,it,0] + nper[iFile,it,1] - 1
421
- if(nper[iFile,it,0]==0): continue # cycle to next it
424
+ if nper[iFile,it,0]==0: continue # cycle to next it
422
425
 
423
426
  nLines = int(round(nper[iFile,it,0]))
424
427
  for iLine in range(nLines):
425
428
  line = inFile.readline()
426
429
  ( icount,s,c,ifi[0],ifi[1],ifi[2],ifi[3],ifi[4],ifi[5],ifi[6],ifi[7],ifi[8],ifi[9],ifi[10],
427
430
  ifi[11],ifi[12],ifi[13],ifi[14],ifi[15] ) = formatPertBody.read(line)
428
- #if(nerr!=0): return 7
431
+ # if nerr!=0: return 7
429
432
 
430
433
  cper[ir] = m.sqrt(c**2+s**2)
431
434
  pha = m.atan2(c,s)
432
- if(pha<0): pha = pha+pi2
435
+ if pha<0: pha = pha+pi2
433
436
 
434
437
  for k in range(5):
435
438
  fper[k,ir] = 0
436
- if(k==0): fper[k,ir] = pha
439
+ if k==0: fper[k,ir] = pha
437
440
  for i in range(4):
438
441
  fper[k,ir] += ifi[i] * dela[i,k]
439
442
 
@@ -449,7 +452,6 @@ def read_files():
449
452
 
450
453
 
451
454
 
452
- ##############################################################################################################
453
455
  def elp_dms2rad(deg,min,sec):
454
456
  """Function for the conversion sexagesimal degrees -> radians in initialise()"""
455
457
 
@@ -457,8 +459,6 @@ def elp_dms2rad(deg,min,sec):
457
459
 
458
460
 
459
461
 
460
-
461
- ##############################################################################################################
462
462
  def compute_lbr(jd, mode=0):
463
463
  """Compute the spherical lunar coordinates using the ELP2000/MPP02 lunar theory in the dynamical mean ecliptic
464
464
  and equinox of J2000.
@@ -480,7 +480,7 @@ def compute_lbr(jd, mode=0):
480
480
 
481
481
  """
482
482
 
483
- #print("Compute lbr:")
483
+ # print("Compute lbr:")
484
484
 
485
485
  xyz,vxyz, ierr = compute_xyz(jd, mode)
486
486
 
@@ -489,17 +489,15 @@ def compute_lbr(jd, mode=0):
489
489
  lon = m.atan2(xyz[1], xyz[0])
490
490
  lat = m.asin(xyz[2]/rad)
491
491
 
492
- #rad = rad/1.49597870700e8 # km -> AU
492
+ # rad = rad/1.49597870700e8 # km -> AU
493
493
 
494
- #print('jd, xyz: ', jd, xyz[0:3])
494
+ # print('jd, xyz: ', jd, xyz[0:3])
495
495
  # print(jd, (lon%pi2)*r2d, lat*r2d, rad)
496
496
 
497
497
  return lon,lat,rad
498
498
 
499
499
 
500
500
 
501
-
502
- ##############################################################################################################
503
501
  def compute_xyz(jd, mode=0):
504
502
  """Compute the rectangular lunar coordinates using the ELP/MPP02 lunar theory in the dynamical mean ecliptic
505
503
  and equinox of J2000.
@@ -521,7 +519,7 @@ def compute_xyz(jd, mode=0):
521
519
 
522
520
  """
523
521
 
524
- #print("Compute xyz:")
522
+ # print("Compute xyz:")
525
523
  global nmpb,cmpb,fmpb, nper,cper,fper
526
524
  global w, p1,p2,p3,p4,p5, q1,q2,q3,q4,q5
527
525
 
@@ -532,7 +530,7 @@ def compute_xyz(jd, mode=0):
532
530
 
533
531
  # Initialise data and read files if needed:
534
532
  ierr = initialise_and_read_files(mode)
535
- if(ierr!=0): sys.exit('Could not read ELP-MPP02 files')
533
+ if ierr!=0: sys.exit('Could not read ELP-MPP02 files')
536
534
 
537
535
 
538
536
  # Initialization of time powers:
@@ -573,7 +571,7 @@ def compute_xyz(jd, mode=0):
573
571
  y = fper[0,iLine]
574
572
  xp = 0
575
573
  yp = 0
576
- if(it!=0): xp = it * x * t[it-1]
574
+ if it!=0: xp = it * x * t[it-1]
577
575
 
578
576
  for k in range(1,5): # k=1,4
579
577
  y += fper[k,iLine] * t[k]
@@ -590,8 +588,8 @@ def compute_xyz(jd, mode=0):
590
588
 
591
589
  # v[0] = v[0] % pi2
592
590
 
593
- #print('t: ', t[0],t[1],t[2],t[3],t[4])
594
- #print('v: ', v[0]*r2d,v[1]*r2d,v[2], v[3],v[4],v[5])
591
+ # print('t: ', t[0],t[1],t[2],t[3],t[4])
592
+ # print('v: ', v[0]*r2d,v[1]*r2d,v[2], v[3],v[4],v[5])
595
593
 
596
594
  # compute the rectangular coordinates (for the EoD?):
597
595
  clamb = m.cos(v[0])
@@ -600,13 +598,13 @@ def compute_xyz(jd, mode=0):
600
598
  sbeta = m.sin(v[1])
601
599
  cw = v[2]*cbeta
602
600
  sw = v[2]*sbeta
603
- #print("c/s l/b: ", clamb,slamb, cbeta,sbeta)
601
+ # print("c/s l/b: ", clamb,slamb, cbeta,sbeta)
604
602
 
605
603
  x0 = cw*clamb
606
604
  x1 = cw*slamb
607
605
  x2 = sw
608
- #print("x1,x2,x3: ", x0,x1,x2)
609
- #print("p,q: ", p1,p2,p3,p4,p5, q1,q2,q3,q4,q5)
606
+ # print("x1,x2,x3: ", x0,x1,x2)
607
+ # print("p,q: ", p1,p2,p3,p4,p5, q1,q2,q3,q4,q5)
610
608
 
611
609
  # Is this simply precession in rectangular coordinates to J2000? From?
612
610
  pw = (p1 + p2*t[1] + p3*t[2] + p4*t[3] + p5*t[4]) * t[1]
@@ -1,9 +1,9 @@
1
- Metadata-Version: 2.1
2
- Name: elp-mpp02
3
- Version: 0.0.4
1
+ Metadata-Version: 2.4
2
+ Name: elp_mpp02
3
+ Version: 0.0.6
4
4
  Summary: Accurate Moon positions using the Lunar solution ELP/MPP02 in Python
5
5
  Author-email: Marc van der Sluys <git@vandersluys.nl>
6
- License: GPLv3+
6
+ License-Expression: GPL-3.0-or-later
7
7
  Project-URL: GitHub, https://github.com/MarcvdSluys/ELP-MPP02
8
8
  Project-URL: ReadTheDocs, https://readthedocs.org/projects/elp-mpp02/
9
9
  Keywords: Moon,astronomy,ephemeris
@@ -11,7 +11,6 @@ Classifier: Development Status :: 3 - Alpha
11
11
  Classifier: Intended Audience :: Developers
12
12
  Classifier: Intended Audience :: Education
13
13
  Classifier: Intended Audience :: Science/Research
14
- Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
15
14
  Classifier: Natural Language :: English
16
15
  Classifier: Operating System :: OS Independent
17
16
  Classifier: Programming Language :: Python :: 3
@@ -20,6 +19,7 @@ Description-Content-Type: text/markdown
20
19
  License-File: LICENCE
21
20
  Requires-Dist: numpy
22
21
  Requires-Dist: fortranformat
22
+ Dynamic: license-file
23
23
 
24
24
  # ELP_MPP02: accurate Moon positions using the lunar solution ELP/MPP02 in Python #
25
25
 
@@ -67,16 +67,21 @@ initialised and the data files need to be read, which can take ~10s. If `mode`
67
67
  data must be reinitialised.
68
68
 
69
69
 
70
- ## Author and licence ##
70
+ ## Copyright and licence ##
71
71
 
72
- * Author: Marc van der Sluys
73
- * Contact: http://astro.ru.nl/~sluys/
74
- * Website: [Github](https://github.com/MarcvdSluys/ELP-MPP02), [PyPI](https://pypi.org/project/elp_mpp02/)
75
- * Licence: [GPLv3+](https://www.gnu.org/licenses/gpl.html)
72
+ * Copyright: 2019-2025 Marc van der Sluys, Department of Physics, Utrecht University and Nikhef (institute for high-energy physics and gravitational waves), Amsterdam (NL)
73
+ * Contact: https://marc.vandersluys.nl
74
+ * Website: [Github](https://github.com/MarcvdSluys/ELP-MPP02), [PyPI](https://pypi.org/project/elp_mpp02/)
75
+ * Licence: [EUPL 1.2](https://www.eupl.eu/1.2/en/)
76
+
77
+
78
+ ## Acknowledgements ##
79
+
80
+ * Thanks to A. Vähäkangas for bug reports!
76
81
 
77
82
 
78
83
  ## References ##
79
84
 
80
85
  * [Chapront & Francou (2003)](https://ui.adsabs.harvard.edu/abs/2003A%26A...404..735C/abstract)
81
86
  * [FTP data files](ftp://cyrano-se.obspm.fr/pub/2_lunar_solutions/2_elpmpp02) &mdash; in case [FTP urls don't work in Markdown](https://github.com/gollum/gollum/issues/759): ftp://cyrano-se.obspm.fr/pub/2_lunar_solutions/2_elpmpp02
82
- * This Python code is adapted from the Fortran implementation in [libTheSky](http://libthesky.sourceforge.net/)
87
+ * This Python code is adapted from the Fortran implementation in [libTheSky](https://libthesky.sourceforge.net/)
@@ -0,0 +1,7 @@
1
+ elp_mpp02/__init__.py,sha256=1ZEQgZRpa0mDJQo3UCl9ZDrrUUeenPAKSAVmLIsROm8,1290
2
+ elp_mpp02/mpp02.py,sha256=UOjrUlSHZOGBN5BJjrhKweaYJfgRW4ywdrSFhihDxdE,22927
3
+ elp_mpp02-0.0.6.dist-info/licenses/LICENCE,sha256=b8nnCcy_4Nd_v_okJ6mDKCvi64jkexzbSfIag7TR5mU,13827
4
+ elp_mpp02-0.0.6.dist-info/METADATA,sha256=GQs3BznVLJLbRKDlz28VNMKYjEOvQVZTdc2Rp8dLPZE,3573
5
+ elp_mpp02-0.0.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
6
+ elp_mpp02-0.0.6.dist-info/top_level.txt,sha256=rGLE8HZyORfVOogfp3wdPIT3wdHzLoFFWz3KL3o6TKE,10
7
+ elp_mpp02-0.0.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.3)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5