Skip to content

Commit 4fe6516

Browse files
authored
Merge pull request #156 from jswhit/v2.0.6rel
v2.0.6 release
2 parents cb5db2c + a6d905c commit 4fe6516

32 files changed

+1095
-1042
lines changed

.travis.yml

+21-12
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,44 @@
11
language: python
2-
dist: bionic
2+
dist: focal
3+
sudo: false
34

45
arch:
56
- amd64
67
- ppc64le
7-
sudo: false
88

99
addons:
1010
apt:
1111
packages:
12-
- libgrib-api-dev
12+
- libproj-dev
13+
- proj-bin
14+
- libeccodes-dev
1315

1416
env:
1517
global:
16-
- DEPENDS="numpy pyproj"
17-
18-
python:
19-
- "3.5"
20-
- "3.6"
21-
- "3.8"
18+
- DEPENDS="numpy pyproj<3.0.0"
19+
- PROJ_DIR=/usr
20+
- PROJ_LIB=/usr/share/proj
21+
22+
matrix:
23+
fast_finish: true
24+
include:
25+
- name: "python-2.7"
26+
env: PY=2.7
27+
- name: "python-3.7"
28+
env: PY=3.7
29+
- name: "python-3.8"
30+
env: PY=3.8
31+
- name: "python-3.9"
32+
env: PY=3.9
2233

2334
notifications:
2435
email: false
2536

2637
before_install:
27-
- pip install pyproj==1.9.6
28-
- sudo apt-get install libeccodes-dev
38+
- pip install --upgrade pip
2939
- pip install $DEPENDS
3040

3141
install:
32-
- python setup.py build
3342
- python setup.py install
3443

3544
script:

Changelog

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
since version 2.0.5
2-
===================
1+
version 2.0.6 (git tag v2.0.6rel)
2+
=================================
3+
* restore python 2 compatability.
34
* distinguish between run and build time dependenices in setup.py (PR #112).
45
* Fix problem printing grib messages with NLDAS grib files (PR #141).
56

MANIFEST.in

-2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@ include setup.cfg.template
1111
include setup.py
1212
include test.py
1313
include README.md
14-
include README.macosx
1514
include utils/*grib*
1615
recursive-include docs *
17-
recursive-include ports *
1816
recursive-include ncepgrib2_docs *
1917
include sampledata/*.grb
2018
include sampledata/*.grb2

README.macosx

-21
This file was deleted.

README.md

+9-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Python module for reading and writing GRIB files (edition 1 and edition 2).
33
GRIB is the World Meteorological Organization (WMO) standard
44
file format for the exchange of weather data.
55

6-
Provides a interfaces for the ECWMF GRIB_API C library and
6+
Provides a high-level interfaces for the ECWMF ECCODES C library and
77
the NCEP grib2 C library, including
88
command line utilities for listing (grib_list) and repacking (grib_repack)
99
GRIB files.
@@ -12,15 +12,17 @@ Quickstart:
1212

1313
* Clone the github repository, or download a source release from https://pypi.python.org/pypi/pygrib.
1414

15-
* Copy setup.cfg.template to setup.cfg, open in text editor, follow instructions in
16-
comments for editing. If you are using the old grib_api library instead of the new eccodes
17-
library, be sure to uncomment the last line setup.cfg.
15+
* install dependencies (eccodes library, numpy, pyproj). On linux, this can
16+
be done via `pip install numpy pyproj; sudo apt-get install libeccodes-dev`.
1817

19-
* Run 'python setup.py build'
18+
* Copy `setup.cfg.template` to `setup.cfg`, open in text editor, follow instructions in
19+
comments for editing.
2020

21-
* Run 'python setup.py install' (with sudo if necessary)
21+
* Run `python setup.py build`
2222

23-
* Run 'python test.py' to test your pygrib installation.
23+
* Run `python setup.py install` (with sudo if necessary)
24+
25+
* Run `python test.py` to test your pygrib installation.
2426

2527
For full installation instructions and API documentation, see https://jswhit.github.io/pygrib.
2628

docs/api-objects.txt

+9-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ pygrib.datetime_to_julian pygrib-module.html#datetime_to_julian
2424
pygrib.tolerate_badgrib pygrib-module.html#tolerate_badgrib
2525
pygrib.gribmessage pygrib.gribmessage-class.html
2626
pygrib.gribmessage.latlons pygrib.gribmessage-class.html#latlons
27-
pygrib.gribmessage.__getattribute__ pygrib.gribmessage-class.html#__getattribute__
27+
pygrib.gribmessage.__reduce__ pygrib.gribmessage-class.html#__reduce__
2828
pygrib.gribmessage.has_key pygrib.gribmessage-class.html#has_key
2929
pygrib.gribmessage._all_keys pygrib.gribmessage-class.html#_all_keys
3030
pygrib.gribmessage.__init__ pygrib.gribmessage-class.html#__init__
@@ -42,7 +42,9 @@ pygrib.gribmessage._get_key pygrib.gribmessage-class.html#_get_key
4242
pygrib.gribmessage._reshape_mask pygrib.gribmessage-class.html#_reshape_mask
4343
pygrib.gribmessage.analDate pygrib.gribmessage-class.html#analDate
4444
pygrib.gribmessage.__getitem__ pygrib.gribmessage-class.html#__getitem__
45+
pygrib.gribmessage.__setstate__ pygrib.gribmessage-class.html#__setstate__
4546
pygrib.gribmessage.keys pygrib.gribmessage-class.html#keys
47+
pygrib.gribmessage.__getattribute__ pygrib.gribmessage-class.html#__getattribute__
4648
pygrib.gribmessage.validDate pygrib.gribmessage-class.html#validDate
4749
pygrib.gribmessage.expand_grid pygrib.gribmessage-class.html#expand_grid
4850
pygrib.gribmessage.__setitem__ pygrib.gribmessage-class.html#__setitem__
@@ -56,15 +58,18 @@ pygrib.gribmessage.__repr__ pygrib.gribmessage-class.html#__repr__
5658
pygrib.gribmessage.expand_reduced pygrib.gribmessage-class.html#expand_reduced
5759
pygrib.index pygrib.index-class.html
5860
pygrib.index.__new__ pygrib.index-class.html#__new__
61+
pygrib.index.__setstate__ pygrib.index-class.html#__setstate__
5962
pygrib.index.keys pygrib.index-class.html#keys
63+
pygrib.index.__reduce__ pygrib.index-class.html#__reduce__
6064
pygrib.index.write pygrib.index-class.html#write
6165
pygrib.index.select pygrib.index-class.html#select
62-
pygrib.index.types pygrib.index-class.html#types
66+
pygrib.index.__init__ pygrib.index-class.html#__init__
6367
pygrib.index.__call__ pygrib.index-class.html#__call__
6468
pygrib.index.close pygrib.index-class.html#close
65-
pygrib.index.__init__ pygrib.index-class.html#__init__
69+
pygrib.index.types pygrib.index-class.html#types
6670
pygrib.index.name pygrib.index-class.html#name
6771
pygrib.open pygrib.open-class.html
72+
pygrib.open.__reduce__ pygrib.open-class.html#__reduce__
6873
pygrib.open.close pygrib.open-class.html#close
6974
pygrib.open.message pygrib.open-class.html#message
7075
pygrib.open.next pygrib.open-class.html#next
@@ -81,6 +86,7 @@ pygrib.open.tell pygrib.open-class.html#tell
8186
pygrib.open._advance pygrib.open-class.html#_advance
8287
pygrib.open.__exit__ pygrib.open-class.html#__exit__
8388
pygrib.open.__getitem__ pygrib.open-class.html#__getitem__
89+
pygrib.open.__setstate__ pygrib.open-class.html#__setstate__
8490
pygrib.open.read pygrib.open-class.html#read
8591
pygrib.open.__next__ pygrib.open-class.html#__next__
8692
pygrib.open.has_multi_field_msgs pygrib.open-class.html#has_multi_field_msgs

docs/class-tree.html

+2-6
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,6 @@
4949
</b></center><br />
5050
<h1 class="epydoc">Class Hierarchy</h1>
5151
<ul class="nomargin-top">
52-
<li> <strong class="uidlink">object</strong>:
53-
<em class="summary">The most base type</em>
54-
<ul>
5552
<li> <strong class="uidlink"><a href="pygrib.gribmessage-class.html">pygrib.gribmessage</a></strong>:
5653
<em class="summary">Grib message object.</em>
5754
</li>
@@ -61,8 +58,6 @@ <h1 class="epydoc">Class Hierarchy</h1>
6158
<li> <strong class="uidlink"><a href="pygrib.open-class.html">pygrib.open</a></strong>:
6259
<em class="summary">open(filename)</em>
6360
</li>
64-
</ul>
65-
</li>
6661
</ul>
6762
<!-- ==================== NAVIGATION BAR ==================== -->
6863
<table class="navbar" border="0" width="100%" cellpadding="0"
@@ -90,7 +85,8 @@ <h1 class="epydoc">Class Hierarchy</h1>
9085
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
9186
<tr>
9287
<td align="left" class="footer">
93-
Generated by Epydoc 3.0.1 on Mon Dec 29 14:23:16 2014
88+
Generated by Epydoc 3.0.1
89+
on Wed Nov 25 08:27:21 2020
9490
</td>
9591
<td align="right" class="footer">
9692
<a target="mainFrame" href="http://epydoc.sourceforge.net"

docs/epydoc.css

+2-2
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ table.summary a.summary-sig-name:visited
162162

163163
/* Subclass list
164164
*/
165-
ul.subclass-list { display: inline; }
166-
ul.subclass-list li { display: inline; }
165+
ul.subclass-list { display: inline; margin: 0; padding: 0; }
166+
ul.subclass-list li { display: inline; margin: 0; padding: 0; }
167167

168168
/* To render variables, classes etc. like functions */
169169
table.summary .summary-name { color: #006080; font-weight: bold;

docs/help.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,8 @@ <h2> The Navigation Bar </h2>
240240
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
241241
<tr>
242242
<td align="left" class="footer">
243-
Generated by Epydoc 3.0.1 on Mon Dec 29 14:23:16 2014
243+
Generated by Epydoc 3.0.1
244+
on Wed Nov 25 08:27:21 2020
244245
</td>
245246
<td align="right" class="footer">
246247
<a target="mainFrame" href="http://epydoc.sourceforge.net"

docs/identifier-index.html

+43-26
Original file line numberDiff line numberDiff line change
@@ -377,70 +377,86 @@ <h1 class="epydoc">Identifier Index</h1>
377377
<tr>
378378
<td width="33%" class="link-index"><a href="pygrib.index-class.html#__call__">__call__()</a><br />
379379
<span class="index-where">(in&nbsp;<a href="pygrib.index-class.html">index</a>)</span></td>
380-
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__getitem__">__getitem__()</a><br />
381-
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
382-
<td width="33%" class="link-index"><a href="pygrib-module.html#__package__">__package__</a><br />
383-
<span class="index-where">(in&nbsp;<a href="pygrib-module.html">pygrib</a>)</span></td>
380+
<td width="33%" class="link-index"><a href="pygrib.index-class.html#__init__">__init__()</a><br />
381+
<span class="index-where">(in&nbsp;<a href="pygrib.index-class.html">index</a>)</span></td>
382+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__repr__">__repr__()</a><br />
383+
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
384384
</tr>
385385
<tr>
386386
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__call__">__call__()</a><br />
387387
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
388-
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__init__">__init__()</a><br />
389-
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
390-
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__repr__">__repr__()</a><br />
388+
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__init__">__init__()</a><br />
389+
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
390+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__setattr__">__setattr__()</a><br />
391391
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
392392
</tr>
393393
<tr>
394394
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__delattr__">__delattr__()</a><br />
395395
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
396-
<td width="33%" class="link-index"><a href="pygrib.index-class.html#__init__">__init__()</a><br />
397-
<span class="index-where">(in&nbsp;<a href="pygrib.index-class.html">index</a>)</span></td>
398-
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__setattr__">__setattr__()</a><br />
396+
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__iter__">__iter__()</a><br />
397+
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
398+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__setitem__">__setitem__()</a><br />
399399
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
400400
</tr>
401401
<tr>
402402
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__delitem__">__delitem__()</a><br />
403403
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
404-
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__init__">__init__()</a><br />
405-
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
406-
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__setitem__">__setitem__()</a><br />
404+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__new__">__new__()</a><br />
405+
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
406+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__setstate__">__setstate__()</a><br />
407407
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
408408
</tr>
409409
<tr>
410410
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__enter__">__enter__()</a><br />
411411
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
412-
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__iter__">__iter__()</a><br />
412+
<td width="33%" class="link-index"><a href="pygrib.index-class.html#__new__">__new__()</a><br />
413+
<span class="index-where">(in&nbsp;<a href="pygrib.index-class.html">index</a>)</span></td>
414+
<td width="33%" class="link-index"><a href="pygrib.index-class.html#__setstate__">__setstate__()</a><br />
415+
<span class="index-where">(in&nbsp;<a href="pygrib.index-class.html">index</a>)</span></td>
416+
</tr>
417+
<tr>
418+
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__exit__">__exit__()</a><br />
419+
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
420+
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__new__">__new__()</a><br />
421+
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
422+
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__setstate__">__setstate__()</a><br />
423+
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
424+
</tr>
425+
<tr>
426+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__getattr__">__getattr__()</a><br />
427+
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
428+
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__next__">__next__()</a><br />
413429
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
414430
<td width="33%" class="link-index"><a href="pygrib-module.html#__version__">__version__</a><br />
415431
<span class="index-where">(in&nbsp;<a href="pygrib-module.html">pygrib</a>)</span></td>
416432
</tr>
417433
<tr>
418-
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__exit__">__exit__()</a><br />
419-
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
420-
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__new__">__new__()</a><br />
434+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__getattribute__">__getattribute__()</a><br />
421435
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
436+
<td width="33%" class="link-index"><a href="pygrib-module.html#__package__">__package__</a><br />
437+
<span class="index-where">(in&nbsp;<a href="pygrib-module.html">pygrib</a>)</span></td>
422438
<td width="33%" class="link-index"><a href="pygrib-module.html#_ftimedict">_ftimedict</a><br />
423439
<span class="index-where">(in&nbsp;<a href="pygrib-module.html">pygrib</a>)</span></td>
424440
</tr>
425441
<tr>
426-
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__getattr__">__getattr__()</a><br />
442+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__getitem__">__getitem__()</a><br />
443+
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
444+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__reduce__">__reduce__()</a><br />
427445
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
428-
<td width="33%" class="link-index"><a href="pygrib.index-class.html#__new__">__new__()</a><br />
429-
<span class="index-where">(in&nbsp;<a href="pygrib.index-class.html">index</a>)</span></td>
430446
<td width="33%" class="link-index"><a href="pygrib-module.html#_private_atts">_private_atts</a><br />
431447
<span class="index-where">(in&nbsp;<a href="pygrib-module.html">pygrib</a>)</span></td>
432448
</tr>
433449
<tr>
434-
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__getattribute__">__getattribute__()</a><br />
435-
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
436-
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__new__">__new__()</a><br />
450+
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__getitem__">__getitem__()</a><br />
437451
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
452+
<td width="33%" class="link-index"><a href="pygrib.index-class.html#__reduce__">__reduce__()</a><br />
453+
<span class="index-where">(in&nbsp;<a href="pygrib.index-class.html">index</a>)</span></td>
438454
<td width="33%" class="link-index">&nbsp;</td>
439455
</tr>
440456
<tr>
441-
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__getitem__">__getitem__()</a><br />
457+
<td width="33%" class="link-index"><a href="pygrib.gribmessage-class.html#__init__">__init__()</a><br />
442458
<span class="index-where">(in&nbsp;<a href="pygrib.gribmessage-class.html">gribmessage</a>)</span></td>
443-
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__next__">__next__()</a><br />
459+
<td width="33%" class="link-index"><a href="pygrib.open-class.html#__reduce__">__reduce__()</a><br />
444460
<span class="index-where">(in&nbsp;<a href="pygrib.open-class.html">open</a>)</span></td>
445461
<td width="33%" class="link-index">&nbsp;</td>
446462
</tr>
@@ -473,7 +489,8 @@ <h1 class="epydoc">Identifier Index</h1>
473489
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
474490
<tr>
475491
<td align="left" class="footer">
476-
Generated by Epydoc 3.0.1 on Mon Dec 29 14:23:16 2014
492+
Generated by Epydoc 3.0.1
493+
on Wed Nov 25 08:27:21 2020
477494
</td>
478495
<td align="right" class="footer">
479496
<a target="mainFrame" href="http://epydoc.sourceforge.net"

0 commit comments

Comments
 (0)