Skip to content

Commit de614bc

Browse files
committed
- Initial commit
Signed-off-by: Christian Schwarz <[email protected]>
0 parents  commit de614bc

18 files changed

+868
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.pyc

CHANGES.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v0.0.0-prealpha, 2012-14-10 -- Initial release will follow soon.

LICENSE.txt

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Copyright (c) 2012 Christian Schwarz
2+
3+
Permission is hereby granted, free of charge, to any person obtaining
4+
a copy of this software and associated documentation files (the
5+
"Software"), to deal in the Software without restriction, including
6+
without limitation the rights to use, copy, modify, merge, publish,
7+
distribute, sublicense, and/or sell copies of the Software, and to
8+
permit persons to whom the Software is furnished to do so, subject to
9+
the following conditions:
10+
11+
The above copyright notice and this permission notice shall be
12+
included in all copies or substantial portions of the Software.
13+
14+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MANIFEST.in

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
include *.txt
2+
recursive-include docs *.txt

README.txt

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
======
2+
pycast
3+
======
4+
5+
pycast aims to provide a python module supporting the basics as
6+
well as advanced smoothing and forecasting methods that can be used
7+
on timeseries data.
8+
9+
Typical usage often looks like this::
10+
11+
#!/usr/bin/env python
12+
13+
from pycast.common.timeseries import TimeSeries
14+
# more code will follow here
15+
16+
Some usage examples of pycast in combination with other tools like gnuplot
17+
can be found in ``bin/examples``
18+
19+
Paragraphs are separated by blank lines. *Italics*, **bold**,
20+
and ``monospace`` look like this.
21+
22+
Basic pycast objects
23+
====================
24+
25+
pycast.commonf.timeseries.TimeSeries
26+
------------------------------------
27+
An instance of TimeSeries is used to store and use your timeseries data
28+
29+
TimeSeries instances:
30+
31+
* Store data
32+
* Can be used to sort and normalize your timeseries data to predefined levels.
33+
34+
Currently, there are some restrictions:
35+
36+
1. TimeSeries can only contain single dimensional, floating point timeseries
37+
2. For internal representation, the UNIX epochs are used
38+
39+
Contributors
40+
============
41+
Christian Schwarz
42+
43+
References
44+
==========
45+
* `Project site: http://code.google.com/p/py-cast/`_.

pycast/__init__.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/usr/bin/env python
2+
# -*- coding: UTF-8 -*-
3+
4+
#Copyright (c) 2012 Christian Schwarz
5+
#
6+
#Permission is hereby granted, free of charge, to any person obtaining
7+
#a copy of this software and associated documentation files (the
8+
#"Software"), to deal in the Software without restriction, including
9+
#without limitation the rights to use, copy, modify, merge, publish,
10+
#distribute, sublicense, and/or sell copies of the Software, and to
11+
#permit persons to whom the Software is furnished to do so, subject to
12+
#the following conditions:
13+
#
14+
#The above copyright notice and this permission notice shall be
15+
#included in all copies or substantial portions of the Software.
16+
#
17+
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18+
#EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19+
#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20+
#NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21+
#LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22+
#OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23+
#WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24+
25+
## 2012-10-09 Christian
26+
##
27+
28+
import common
29+
import forecasting
30+
import optimization
31+
import smoothing

pycast/common/__init__.py

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env python
2+
# -*- coding: UTF-8 -*-
3+
4+
#Copyright (c) 2012 Christian Schwarz
5+
#
6+
#Permission is hereby granted, free of charge, to any person obtaining
7+
#a copy of this software and associated documentation files (the
8+
#"Software"), to deal in the Software without restriction, including
9+
#without limitation the rights to use, copy, modify, merge, publish,
10+
#distribute, sublicense, and/or sell copies of the Software, and to
11+
#permit persons to whom the Software is furnished to do so, subject to
12+
#the following conditions:
13+
#
14+
#The above copyright notice and this permission notice shall be
15+
#included in all copies or substantial portions of the Software.
16+
#
17+
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18+
#EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19+
#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20+
#NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21+
#LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22+
#OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23+
#WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24+
25+
import timeseries

pycast/common/helper.py

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/usr/bin/env python
2+
# -*- coding: UTF-8 -*-
3+
4+
#Copyright (c) 2012 Christian Schwarz
5+
#
6+
#Permission is hereby granted, free of charge, to any person obtaining
7+
#a copy of this software and associated documentation files (the
8+
#"Software"), to deal in the Software without restriction, including
9+
#without limitation the rights to use, copy, modify, merge, publish,
10+
#distribute, sublicense, and/or sell copies of the Software, and to
11+
#permit persons to whom the Software is furnished to do so, subject to
12+
#the following conditions:
13+
#
14+
#The above copyright notice and this permission notice shall be
15+
#included in all copies or substantial portions of the Software.
16+
#
17+
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18+
#EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19+
#MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20+
#NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21+
#LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22+
#OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23+
#WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24+
25+
## This module contains helper functions that will be moved later
26+
27+
28+
import time
29+
30+
31+
32+
def _to_timestamp(self, epoch):
33+
return time.strftime("%m-%d_%H:%M", time.localtime(epoch))
34+
35+
## @todo define a more general interface!
36+
def linear_interpolation(fisrt, last, steps):
37+
"""Interpolates all missing values using linear interpolation.
38+
39+
@param first Starting value for the interpolation.
40+
41+
@param last End Value for the interpolation
42+
43+
@param steps Number of missing values that have to be calculated.
44+
45+
@return Returns a list of floats containing only the missing values.
46+
"""
47+
result = []
48+
49+
for step in xrange(0, stepsBetween):
50+
fpart = (stepsBetween - step) * first
51+
lpart = (step + 1) * last
52+
value = (fpart + lpart) / float(stepsBetween + 1)
53+
result.append(value)
54+
55+
return result

0 commit comments

Comments
 (0)