Skip to content

Commit b4907f7

Browse files
committed
v0.2.4 milestone enhancements and a bugfix
1 parent 3c15643 commit b4907f7

39 files changed

+354
-130
lines changed

CHANGELOG.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
=========
22
CHANGELOG
33
=========
4+
0.2.4
5+
-----
6+
7+
Fixes issues #2, #4: get_version(), set_message_level(), set_program_name() now supported at module level
8+
Fixes issues #1: HECDSS marks periods by end of time stamp bug
49

510
0.2.3
611
-----

docs/doctrees/contributing.doctree

70 Bytes
Binary file not shown.

docs/doctrees/environment.pickle

2.48 KB
Binary file not shown.

docs/doctrees/history.doctree

662 Bytes
Binary file not shown.
Loading
Loading
3.07 KB
Binary file not shown.

docs/doctrees/pyhecdss.doctree

5.42 KB
Binary file not shown.

docs/html/.buildinfo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Sphinx build info version 1
22
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3-
config: fee7d13d351010807275308c0e9def13
3+
config: a536a81d016a125539e86ea1a6e97174
44
tags: 645f666f9bcd5a90fca523b33c5a78b7
Loading
Loading

docs/html/_modules/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<html xmlns="http://www.w3.org/1999/xhtml">
55
<head>
66
<meta charset="utf-8" />
7-
<title>Overview: module code &#8212; pyhecdss 0.2.3 documentation</title>
7+
<title>Overview: module code &#8212; pyhecdss 0.2.4 documentation</title>
88
<link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
99
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
1010
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>

docs/html/_modules/pyhecdss/pyhecdss.html

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<html xmlns="http://www.w3.org/1999/xhtml">
55
<head>
66
<meta charset="utf-8" />
7-
<title>pyhecdss.pyhecdss &#8212; pyhecdss 0.2.3 documentation</title>
7+
<title>pyhecdss.pyhecdss &#8212; pyhecdss 0.2.4 documentation</title>
88
<link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
99
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
1010
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
@@ -36,6 +36,25 @@ <h1>Source code for pyhecdss.pyhecdss</h1><div class="highlight"><pre>
3636
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
3737
<span class="kn">import</span> <span class="nn">os</span>
3838
<span class="kn">import</span> <span class="nn">time</span>
39+
<span class="c1"># some static functions</span>
40+
<div class="viewcode-block" id="set_message_level"><a class="viewcode-back" href="../../pyhecdss.html#pyhecdss.pyhecdss.set_message_level">[docs]</a><span class="k">def</span> <span class="nf">set_message_level</span><span class="p">(</span><span class="n">level</span><span class="p">):</span>
41+
<span class="sd">&quot;&quot;&quot;</span>
42+
<span class="sd"> set the verbosity level of the HEC-DSS library</span>
43+
<span class="sd"> level ranges from &quot;bort&quot; only (level 0) to &quot;internal&quot; (level &gt;10)</span>
44+
<span class="sd"> &quot;&quot;&quot;</span>
45+
<span class="n">pyheclib</span><span class="o">.</span><span class="n">hec_zset</span><span class="p">(</span><span class="s1">&#39;MLEVEL&#39;</span><span class="p">,</span><span class="s1">&#39;&#39;</span><span class="p">,</span><span class="n">level</span><span class="p">)</span></div>
46+
<div class="viewcode-block" id="set_program_name"><a class="viewcode-back" href="../../pyhecdss.html#pyhecdss.pyhecdss.set_program_name">[docs]</a><span class="k">def</span> <span class="nf">set_program_name</span><span class="p">(</span><span class="n">program_name</span><span class="p">):</span>
47+
<span class="sd">&quot;&quot;&quot;</span>
48+
<span class="sd"> sets the name of the program (upto 6 chars long) to store with data</span>
49+
<span class="sd"> &quot;&quot;&quot;</span>
50+
<span class="n">name</span><span class="o">=</span><span class="n">program_name</span><span class="p">[:</span><span class="nb">min</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span><span class="nb">len</span><span class="p">(</span><span class="n">program_name</span><span class="p">))]</span>
51+
<span class="n">pyheclib</span><span class="o">.</span><span class="n">hec_zset</span><span class="p">(</span><span class="s1">&#39;PROGRAM&#39;</span><span class="p">,</span><span class="n">name</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span></div>
52+
<div class="viewcode-block" id="get_version"><a class="viewcode-back" href="../../pyhecdss.html#pyhecdss.pyhecdss.get_version">[docs]</a><span class="k">def</span> <span class="nf">get_version</span><span class="p">(</span><span class="n">fname</span><span class="p">):</span>
53+
<span class="sd">&quot;&quot;&quot;</span>
54+
<span class="sd"> Get version of DSS File</span>
55+
<span class="sd"> returns a tuple of string version of 4 characters and integer version</span>
56+
<span class="sd"> &quot;&quot;&quot;</span>
57+
<span class="k">return</span> <span class="n">pyheclib</span><span class="o">.</span><span class="n">hec_zfver</span><span class="p">(</span><span class="n">fname</span><span class="p">);</span></div>
3958
<div class="viewcode-block" id="DSSFile"><a class="viewcode-back" href="../../pyhecdss.html#pyhecdss.pyhecdss.DSSFile">[docs]</a><span class="k">class</span> <span class="nc">DSSFile</span><span class="p">:</span>
4059
<span class="c1">#DSS missing conventions</span>
4160
<span class="n">MISSING_VALUE</span><span class="o">=-</span><span class="mf">901.0</span>
@@ -90,10 +109,11 @@ <h1>Source code for pyhecdss.pyhecdss</h1><div class="highlight"><pre>
90109
<div class="viewcode-block" id="DSSFile.get_version"><a class="viewcode-back" href="../../pyhecdss.html#pyhecdss.pyhecdss.DSSFile.get_version">[docs]</a> <span class="k">def</span> <span class="nf">get_version</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
91110
<span class="sd">&quot;&quot;&quot;</span>
92111
<span class="sd"> Get version of DSS File</span>
112+
<span class="sd"> returns a tuple of string version of 4 characters and integer version</span>
93113
<span class="sd"> &quot;&quot;&quot;</span>
94114
<span class="c1">#needs to be done on a closed file</span>
95115
<span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">isopen</span><span class="p">):</span> <span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
96-
<span class="n">pyheclib</span><span class="o">.</span><span class="n">zfver_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fname</span><span class="p">,</span> <span class="n">char</span> <span class="o">*</span><span class="n">cver</span><span class="p">,</span> <span class="nb">int</span> <span class="o">*</span><span class="n">iver</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">fname</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">cver</span><span class="p">));</span></div>
116+
<span class="k">return</span> <span class="n">pyheclib</span><span class="o">.</span><span class="n">hec_zfver</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fname</span><span class="p">);</span></div>
97117
<div class="viewcode-block" id="DSSFile.catalog"><a class="viewcode-back" href="../../pyhecdss.html#pyhecdss.pyhecdss.DSSFile.catalog">[docs]</a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
98118
<span class="sd">&quot;&quot;&quot;</span>
99119
<span class="sd"> Catalog DSS Files</span>
@@ -299,16 +319,20 @@ <h1>Source code for pyhecdss.pyhecdss</h1><div class="highlight"><pre>
299319
<span class="n">dvalues</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">nvals</span><span class="p">,</span><span class="s1">&#39;d&#39;</span><span class="p">)</span> <span class="c1"># PERF: could be np.empty if all initialized</span>
300320
<span class="n">nvals</span><span class="p">,</span><span class="n">cunits</span><span class="p">,</span><span class="n">ctype</span><span class="p">,</span><span class="n">iofset</span><span class="p">,</span><span class="n">istat</span><span class="o">=</span><span class="n">pyheclib</span><span class="o">.</span><span class="n">hec_zrrtsxd</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ifltab</span><span class="p">,</span> <span class="n">pathname</span><span class="p">,</span> <span class="n">cdate</span><span class="p">,</span> <span class="n">ctime</span><span class="p">,</span>
301321
<span class="n">dvalues</span><span class="p">)</span>
322+
<span class="k">if</span> <span class="n">iofset</span> <span class="o">!=</span><span class="mi">0</span> <span class="p">:</span>
323+
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Warning: iofset value of non-zero is not handled: &#39;</span><span class="p">,</span><span class="n">iofset</span><span class="p">)</span>
302324
<span class="c1">#FIXME: raise appropriate exception for istat value</span>
303325
<span class="c1">#if istat != 0:</span>
304326
<span class="c1"># raise Exception(self._get_istat_for_zrrtsxd(istat))</span>
305327
<span class="c1">#FIXME: deal with non-zero iofset</span>
306328
<span class="n">freqoffset</span><span class="o">=</span><span class="n">DSSFile</span><span class="o">.</span><span class="n">EPART_FREQ_MAP</span><span class="p">[</span><span class="n">interval</span><span class="p">]</span>
307-
<span class="k">if</span> <span class="n">ctype</span> <span class="o">==</span> <span class="s1">&#39;INST-VAL&#39;</span><span class="p">:</span>
329+
<span class="k">if</span> <span class="n">ctype</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;INST&#39;</span><span class="p">):</span>
308330
<span class="n">dindex</span><span class="o">=</span><span class="n">pd</span><span class="o">.</span><span class="n">date_range</span><span class="p">(</span><span class="n">startDateStr</span><span class="p">,</span><span class="n">periods</span><span class="o">=</span><span class="n">nvals</span><span class="p">,</span><span class="n">freq</span><span class="o">=</span><span class="n">freqoffset</span><span class="p">)</span>
309331
<span class="k">else</span><span class="p">:</span>
310-
<span class="n">dindex</span><span class="o">=</span><span class="n">pd</span><span class="o">.</span><span class="n">period_range</span><span class="p">(</span><span class="n">startDateStr</span><span class="p">,</span><span class="n">periods</span><span class="o">=</span><span class="n">nvals</span><span class="p">,</span><span class="n">freq</span><span class="o">=</span><span class="n">freqoffset</span><span class="p">)</span>
332+
<span class="n">sp</span><span class="o">=</span><span class="n">pd</span><span class="o">.</span><span class="n">Period</span><span class="p">(</span><span class="n">startDateStr</span><span class="p">,</span><span class="n">freq</span><span class="o">=</span><span class="n">freqoffset</span><span class="p">)</span><span class="o">-</span><span class="n">pd</span><span class="o">.</span><span class="n">tseries</span><span class="o">.</span><span class="n">frequencies</span><span class="o">.</span><span class="n">to_offset</span><span class="p">(</span><span class="n">freqoffset</span><span class="p">)</span>
333+
<span class="n">dindex</span><span class="o">=</span><span class="n">pd</span><span class="o">.</span><span class="n">period_range</span><span class="p">(</span><span class="n">sp</span><span class="p">,</span><span class="n">periods</span><span class="o">=</span><span class="n">nvals</span><span class="p">,</span><span class="n">freq</span><span class="o">=</span><span class="n">freqoffset</span><span class="p">)</span>
311334
<span class="n">df1</span><span class="o">=</span><span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">dvalues</span><span class="p">,</span><span class="n">index</span><span class="o">=</span><span class="n">dindex</span><span class="p">,</span><span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">pathname</span><span class="p">])</span>
335+
<span class="c1"># cleanup missing values --&gt; NAN, trim dataset and units and period type strings</span>
312336
<span class="n">df1</span><span class="o">.</span><span class="n">replace</span><span class="p">([</span><span class="n">DSSFile</span><span class="o">.</span><span class="n">MISSING_VALUE</span><span class="p">,</span><span class="n">DSSFile</span><span class="o">.</span><span class="n">MISSING_RECORD</span><span class="p">],[</span><span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">,</span><span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">],</span><span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
313337
<span class="k">if</span> <span class="n">trim_first</span> <span class="ow">or</span> <span class="n">trim_last</span><span class="p">:</span>
314338
<span class="k">if</span> <span class="n">trim_first</span><span class="p">:</span>

docs/html/_sources/notebooks/sample_dss_files.ipynb.txt

Lines changed: 65 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
"execution_count": 1,
2828
"metadata": {
2929
"ExecuteTime": {
30-
"end_time": "2019-08-28T16:19:01.629871Z",
31-
"start_time": "2019-08-28T16:18:59.431529Z"
30+
"end_time": "2019-09-04T21:38:39.845317Z",
31+
"start_time": "2019-09-04T21:38:38.606777Z"
3232
}
3333
},
3434
"outputs": [],
@@ -54,15 +54,47 @@
5454
"execution_count": 2,
5555
"metadata": {
5656
"ExecuteTime": {
57-
"end_time": "2019-08-28T16:19:01.654379Z",
58-
"start_time": "2019-08-28T16:19:01.648880Z"
57+
"end_time": "2019-09-04T21:38:40.130425Z",
58+
"start_time": "2019-09-04T21:38:40.125418Z"
5959
}
6060
},
6161
"outputs": [],
6262
"source": [
6363
"d=pyhecdss.DSSFile(fname)"
6464
]
6565
},
66+
{
67+
"cell_type": "markdown",
68+
"metadata": {},
69+
"source": [
70+
"## Setting message level and program name\n"
71+
]
72+
},
73+
{
74+
"cell_type": "code",
75+
"execution_count": 18,
76+
"metadata": {
77+
"ExecuteTime": {
78+
"end_time": "2019-09-04T21:42:02.595891Z",
79+
"start_time": "2019-09-04T21:42:02.582805Z"
80+
}
81+
},
82+
"outputs": [
83+
{
84+
"name": "stdout",
85+
"output_type": "stream",
86+
"text": [
87+
"['6-VE', 6]\n"
88+
]
89+
}
90+
],
91+
"source": [
92+
"pyhecdss.set_message_level(10) # highest level with debug level of output\n",
93+
"pyhecdss.set_message_level(0) # quiets messages to only aborts\n",
94+
"pyhecdss.set_program_name('PYTHON') # name used when writing to DSS files\n",
95+
"print(pyhecdss.get_version(fname)) # version of DSS file format as a string and integer tuple"
96+
]
97+
},
6698
{
6799
"cell_type": "markdown",
68100
"metadata": {},
@@ -78,11 +110,11 @@
78110
},
79111
{
80112
"cell_type": "code",
81-
"execution_count": 3,
113+
"execution_count": 19,
82114
"metadata": {
83115
"ExecuteTime": {
84-
"end_time": "2019-08-28T16:19:02.677665Z",
85-
"start_time": "2019-08-28T16:19:02.670660Z"
116+
"end_time": "2019-09-04T21:42:03.675121Z",
117+
"start_time": "2019-09-04T21:42:03.670112Z"
86118
}
87119
},
88120
"outputs": [],
@@ -93,11 +125,11 @@
93125
},
94126
{
95127
"cell_type": "code",
96-
"execution_count": 4,
128+
"execution_count": 20,
97129
"metadata": {
98130
"ExecuteTime": {
99-
"end_time": "2019-08-28T16:19:03.160044Z",
100-
"start_time": "2019-08-28T16:19:03.150017Z"
131+
"end_time": "2019-09-04T21:42:04.034515Z",
132+
"start_time": "2019-09-04T21:42:04.022506Z"
101133
}
102134
},
103135
"outputs": [
@@ -107,7 +139,7 @@
107139
"0"
108140
]
109141
},
110-
"execution_count": 4,
142+
"execution_count": 20,
111143
"metadata": {},
112144
"output_type": "execute_result"
113145
}
@@ -130,11 +162,11 @@
130162
},
131163
{
132164
"cell_type": "code",
133-
"execution_count": 5,
165+
"execution_count": 21,
134166
"metadata": {
135167
"ExecuteTime": {
136-
"end_time": "2019-08-28T16:19:04.059163Z",
137-
"start_time": "2019-08-28T16:19:04.054158Z"
168+
"end_time": "2019-09-04T21:42:05.067028Z",
169+
"start_time": "2019-09-04T21:42:05.062024Z"
138170
}
139171
},
140172
"outputs": [],
@@ -144,11 +176,11 @@
144176
},
145177
{
146178
"cell_type": "code",
147-
"execution_count": 6,
179+
"execution_count": 22,
148180
"metadata": {
149181
"ExecuteTime": {
150-
"end_time": "2019-08-28T16:19:04.470832Z",
151-
"start_time": "2019-08-28T16:19:04.462258Z"
182+
"end_time": "2019-09-04T21:42:05.398372Z",
183+
"start_time": "2019-09-04T21:42:05.390845Z"
152184
}
153185
},
154186
"outputs": [
@@ -158,7 +190,7 @@
158190
"0"
159191
]
160192
},
161-
"execution_count": 6,
193+
"execution_count": 22,
162194
"metadata": {},
163195
"output_type": "execute_result"
164196
}
@@ -169,11 +201,11 @@
169201
},
170202
{
171203
"cell_type": "code",
172-
"execution_count": 7,
204+
"execution_count": 23,
173205
"metadata": {
174206
"ExecuteTime": {
175-
"end_time": "2019-08-28T16:19:04.929083Z",
176-
"start_time": "2019-08-28T16:19:04.863027Z"
207+
"end_time": "2019-09-04T21:42:05.715578Z",
208+
"start_time": "2019-09-04T21:42:05.663030Z"
177209
}
178210
},
179211
"outputs": [
@@ -265,11 +297,11 @@
265297
},
266298
{
267299
"cell_type": "code",
268-
"execution_count": 8,
300+
"execution_count": 24,
269301
"metadata": {
270302
"ExecuteTime": {
271-
"end_time": "2019-08-28T16:19:06.005480Z",
272-
"start_time": "2019-08-28T16:19:05.983965Z"
303+
"end_time": "2019-09-04T21:42:06.692209Z",
304+
"start_time": "2019-09-04T21:42:06.670800Z"
273305
}
274306
},
275307
"outputs": [
@@ -396,11 +428,11 @@
396428
},
397429
{
398430
"cell_type": "code",
399-
"execution_count": 9,
431+
"execution_count": 25,
400432
"metadata": {
401433
"ExecuteTime": {
402-
"end_time": "2019-08-28T16:19:06.881699Z",
403-
"start_time": "2019-08-28T16:19:06.847224Z"
434+
"end_time": "2019-09-04T21:42:07.627742Z",
435+
"start_time": "2019-09-04T21:42:07.598719Z"
404436
}
405437
},
406438
"outputs": [
@@ -555,11 +587,11 @@
555587
},
556588
{
557589
"cell_type": "code",
558-
"execution_count": 10,
590+
"execution_count": 26,
559591
"metadata": {
560592
"ExecuteTime": {
561-
"end_time": "2019-08-28T16:19:08.229856Z",
562-
"start_time": "2019-08-28T16:19:08.214842Z"
593+
"end_time": "2019-09-04T21:42:08.414354Z",
594+
"start_time": "2019-09-04T21:42:08.406348Z"
563595
}
564596
},
565597
"outputs": [],
@@ -577,11 +609,11 @@
577609
},
578610
{
579611
"cell_type": "code",
580-
"execution_count": 11,
612+
"execution_count": 27,
581613
"metadata": {
582614
"ExecuteTime": {
583-
"end_time": "2019-08-28T16:19:10.017458Z",
584-
"start_time": "2019-08-28T16:19:09.462275Z"
615+
"end_time": "2019-09-04T21:42:09.838355Z",
616+
"start_time": "2019-09-04T21:42:09.342795Z"
585617
}
586618
},
587619
"outputs": [

docs/html/_static/documentation_options.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
var DOCUMENTATION_OPTIONS = {
22
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
3-
VERSION: '0.2.3',
3+
VERSION: '0.2.4',
44
LANGUAGE: 'None',
55
COLLAPSE_INDEX: false,
66
FILE_SUFFIX: '.html',

0 commit comments

Comments
 (0)