├── .gitignore ├── LICENSE ├── git └── git.txt ├── history_export_2016-12-05T11-55-25.csv ├── history_export_2016-12-05T11-55-25.json ├── modules.ipynb ├── modules ├── __init__.py ├── database.py ├── enum_csv.py ├── fib.py ├── fiz.py ├── main.py ├── output.py ├── psy.ipynb ├── reader.py ├── test_fib.py ├── test_fiz.py └── utils.py └── test /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | .ipynb_checkpoints/ 3 | .cache 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Marek Piechula 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /git/git.txt: -------------------------------------------------------------------------------- 1 | cokolwiek 2 | #grupa A 3 | Bez nóg, bez rąk, bez głowy i brzucha, a gdy się obróci, wszędzie dmucha. 4 | wiatrak 5 | 6 | Zła pani – mieszka w bani. 7 | nalewka 8 | 9 | #grupa B 10 | Stoi panna w murze – w czerwonym kapturze. 11 | Czterech braciszków się gonią, a nigdy się nie dogonią. 12 | #grupa C 13 | Między żerdziami nad kołkiem kołek, kto szedł, to wyszedł aż na wierzchołek. 14 | Wszystkie dziury w dachu poszyli, tylko jedną zostawili. 15 | #grupa D 16 | Siedmiu braciszków cały rok się gonią, i z roku na rok, i z wieku na wiek. 17 | Kto o nią dba, ten jej nie ma,a kto o nią nie dba, ten ją ma. 18 | #grupa E 19 | Głowę mu ścięto, serce wyjęto, pić mu dano, mówić kazano. 20 | Skrzętnie murarze murują, W ich murze ludzie smakują. 21 | #grupa F 22 | W lesie ścięto, w domu zgięto, W stajni stało, ogon dało, Na ręce wzięto – płakało. 23 | Pole niewymierzone, bydełko niezliczone, Parobek rogaty a gospodarz bogaty. 24 | #grupa G 25 | Żyje bez ciała,mówi bez języka,nikt go nie widzi,a każdy go słyszy. 26 | echo 27 | Z jakiego drzewa liść nigdy nie opada? 28 | binarnego 29 | #grupa H 30 | Jak ze słomy zrobić masło? 31 | Co nad nami do góry nogami? 32 | #grupa I 33 | Przy drodze stoi,ręce rozkłada i nic nie gada. 34 | Kto się żywi wodą i wiatrem? 35 | #grupa J 36 | Gdzie najdroższa woda? 37 | Kto je ruszy, płakać musi. 38 | #grupa K 39 | W zimie w wodnej jamie siedzi, a jak słońce, to na wierzch wychodzi. 40 | Ani zwierz, ani ptak, w nosie spica z głosem dzwonka, kto go zabije, ten swoją krew przeleje. 41 | #grupa L 42 | Biały baran ogónkiem kiwa, czerwony ptaszek żałośnie śpiewa. 43 | Przyszedł byk, w dziurkę tryk. 44 | #grupa M 45 | Pełna stajenka białych cieliczek, a między nimi czerwony byczek. 46 | Trzy konie o jednym ogonie. 47 | #grupa N 48 | Żelazna świneczka - konopiany ogon. 49 | Lata ptaszek popod lasek, Zakrzywiony ma dziubasek. 50 | #grupa O 51 | Czerwony ptaszek, kopie ogonkiem piasek. 52 | Długie, cienkie nogi, długi ostry dziób, Uciekajcie żaby, bo to jest wasz wróg. 53 | 54 | -------------------------------------------------------------------------------- /history_export_2016-12-05T11-55-25.csv: -------------------------------------------------------------------------------- 1 | Year;Month;Day;Hour;Minute;Temperature [2 m above gnd];Relative humidity [2 m above gnd];Mean Sea Level Pressure [MSL];Total Precipitation [sfc];Snowfall amount [sfc];Wind speed [10 m above gnd];Wind direction [10 m above gnd];Wind Gust [10 m above gnd] 2 | 2016;11;21;00;00;7.43;90.00;1014.40;0.00;0.00;17.73;185.83;29.88 3 | 2016;11;21;01;00;7.07;92.00;1015.30;0.00;0.00;14.78;182.79;33.12 4 | 2016;11;21;02;00;6.72;93.00;1015.50;0.00;0.00;13.68;178.49;35.28 5 | 2016;11;21;03;00;6.67;94.00;1015.80;0.00;0.00;13.80;172.50;31.32 6 | 2016;11;21;04;00;6.74;95.00;1016.30;0.00;0.00;13.28;167.47;28.44 7 | 2016;11;21;05;00;6.67;95.00;1016.70;0.00;0.00;13.78;160.14;27.00 8 | 2016;11;21;06;00;6.95;97.00;1017.30;0.00;0.00;14.12;160.64;18.72 9 | 2016;11;21;07;00;6.95;97.00;1017.00;0.00;0.00;13.44;159.62;17.64 10 | 2016;11;21;08;00;7.13;96.00;1017.90;0.00;0.00;14.81;154.06;17.64 11 | 2016;11;21;09;00;8.18;95.00;1017.70;0.00;0.00;15.79;155.77;19.08 12 | 2016;11;21;10;00;9.50;91.00;1018.00;0.00;0.00;15.62;154.03;19.80 13 | 2016;11;21;11;00;11.25;85.00;1017.80;0.00;0.00;16.90;153.43;24.12 14 | 2016;11;21;12;00;13.09;78.00;1017.80;0.00;0.00;18.06;156.50;26.28 15 | 2016;11;21;13;00;13.27;75.00;1015.20;0.00;0.00;19.20;149.59;20.88 16 | 2016;11;21;14;00;13.21;75.00;1015.00;0.00;0.00;18.89;149.04;21.96 17 | 2016;11;21;15;00;12.90;77.00;1015.00;0.00;0.00;16.79;149.04;24.12 18 | 2016;11;21;16;00;12.47;81.00;1015.50;0.00;0.00;14.19;144.29;22.32 19 | 2016;11;21;17;00;12.05;85.00;1015.80;0.00;0.00;13.61;142.52;24.12 20 | 2016;11;21;18;00;11.13;89.00;1015.20;0.00;0.00;15.38;147.43;25.20 21 | 2016;11;21;19;00;10.58;91.00;1015.30;0.00;0.00;15.84;158.68;26.64 22 | 2016;11;21;20;00;10.23;92.00;1015.40;0.00;0.00;16.85;160.02;29.52 23 | 2016;11;21;21;00;10.01;92.00;1016.00;0.00;0.00;17.65;163.41;27.72 24 | 2016;11;21;22;00;9.75;92.00;1016.10;0.00;0.00;17.21;164.22;26.28 25 | 2016;11;21;23;00;9.48;93.00;1016.60;0.00;0.00;17.53;160.82;26.28 26 | 2016;11;22;00;00;9.20;93.00;1016.70;0.00;0.00;17.99;160.11;25.20 27 | 2016;11;22;01;00;8.91;93.00;1017.30;0.00;0.00;18.25;157.99;26.28 28 | 2016;11;22;02;00;8.64;93.00;1017.40;0.00;0.00;17.92;157.56;25.92 29 | 2016;11;22;03;00;8.40;93.00;1017.70;0.00;0.00;17.88;154.98;24.48 30 | 2016;11;22;04;00;8.12;93.00;1018.00;0.00;0.00;17.73;150.83;23.04 31 | 2016;11;22;05;00;7.92;94.00;1018.50;0.00;0.00;17.10;149.66;22.68 32 | 2016;11;22;06;00;7.72;94.00;1019.10;0.00;0.00;17.48;147.62;23.04 33 | 2016;11;22;07;00;7.46;94.00;1018.60;0.00;0.00;17.37;145.98;23.04 34 | 2016;11;22;08;00;7.49;94.00;1019.20;0.00;0.00;17.67;146.63;23.04 35 | 2016;11;22;09;00;8.66;89.00;1019.60;0.00;0.00;18.68;152.45;23.04 36 | 2016;11;22;10;00;10.32;82.00;1020.30;0.00;0.00;19.21;167.01;23.04 37 | 2016;11;22;11;00;11.33;80.00;1020.30;0.00;0.00;19.96;172.75;25.92 38 | 2016;11;22;12;00;12.40;76.00;1020.80;0.00;0.00;19.25;172.48;24.12 39 | 2016;11;22;13;00;12.16;71.00;1017.50;0.00;0.00;17.91;149.83;20.52 40 | 2016;11;22;14;00;12.37;71.00;1017.20;0.00;0.00;17.24;151.29;20.16 41 | 2016;11;22;15;00;12.10;74.00;1017.30;0.00;0.00;12.39;144.46;18.72 42 | 2016;11;22;16;00;11.55;78.00;1017.90;0.00;0.00;9.42;133.45;13.68 43 | 2016;11;22;17;00;11.05;81.00;1018.60;0.00;0.00;8.50;126.38;17.28 44 | 2016;11;22;18;00;9.86;87.00;1018.10;0.00;0.00;8.05;116.57;11.88 45 | 2016;11;22;19;00;8.22;94.00;1017.90;0.00;0.00;8.50;126.38;15.12 46 | 2016;11;22;20;00;7.27;97.00;1018.90;0.00;0.00;8.79;145.01;20.16 47 | 2016;11;22;21;00;7.05;97.00;1019.10;0.00;0.00;9.69;158.20;16.56 48 | 2016;11;22;22;00;6.59;97.00;1019.50;0.00;0.00;9.01;177.71;22.68 49 | 2016;11;22;23;00;6.21;96.00;1020.40;0.00;0.00;8.64;180.00;20.16 50 | 2016;11;23;00;00;6.02;96.00;1020.80;0.00;0.00;7.64;188.13;19.08 51 | 2016;11;23;01;00;5.82;95.00;1021.40;0.00;0.00;7.95;185.19;17.64 52 | 2016;11;23;02;00;5.55;95.00;1021.70;0.00;0.00;8.21;195.26;20.52 53 | 2016;11;23;03;00;5.51;95.00;1022.10;0.00;0.00;7.34;191.31;12.96 54 | 2016;11;23;04;00;5.66;95.00;1022.50;0.00;0.00;7.57;182.73;14.04 55 | 2016;11;23;05;00;5.50;95.00;1022.80;0.00;0.00;8.31;184.97;16.92 56 | 2016;11;23;06;00;5.26;95.00;1023.70;0.00;0.00;7.28;188.53;15.48 57 | 2016;11;23;07;00;5.26;95.00;1023.70;0.00;0.00;7.28;188.53;16.56 58 | 2016;11;23;08;00;5.86;95.00;1024.30;0.00;0.00;7.64;188.13;19.44 59 | 2016;11;23;09;00;6.81;94.00;1024.90;0.00;0.00;7.86;195.95;19.08 60 | 2016;11;23;10;00;7.46;93.00;1025.30;0.00;0.00;8.21;195.26;18.00 61 | 2016;11;23;11;00;8.31;91.00;1025.60;0.00;0.00;9.29;215.54;18.36 62 | 2016;11;23;12;00;9.49;87.00;1026.10;0.00;0.00;7.99;215.84;18.72 63 | 2016;11;23;13;00;12.42;73.00;1022.30;0.00;0.00;7.57;205.35;9.00 64 | 2016;11;23;14;00;12.73;73.00;1022.30;0.00;0.00;6.79;212.01;9.72 65 | 2016;11;23;15;00;12.41;75.00;1022.60;0.00;0.00;4.33;221.63;7.92 66 | 2016;11;23;16;00;11.88;78.00;1023.30;0.00;0.00;3.83;228.81;6.12 67 | 2016;11;23;17;00;11.50;80.00;1024.30;0.00;0.00;3.56;225.00;6.12 68 | 2016;11;23;18;00;10.91;83.00;1023.40;0.00;0.00;3.40;212.01;6.12 69 | 2016;11;23;19;00;10.40;86.00;1023.00;0.00;0.00;3.98;185.19;6.48 70 | 2016;11;23;20;00;9.90;89.00;1023.80;0.00;0.00;5.04;180.00;9.36 71 | 2016;11;23;21;00;9.23;92.00;1023.70;0.00;0.00;5.01;201.04;10.80 72 | 2016;11;23;22;00;8.64;96.00;1023.90;0.00;0.00;4.61;218.66;11.88 73 | 2016;11;23;23;00;8.10;99.00;1024.00;0.00;0.00;4.33;221.63;12.60 74 | 2016;11;24;00;00;7.35;97.00;1024.10;0.00;0.00;3.76;253.30;12.24 75 | 2016;11;24;01;00;6.14;97.00;1024.90;0.00;0.00;3.67;281.31;12.60 76 | 2016;11;24;02;00;5.64;96.00;1024.40;0.00;0.00;2.28;288.43;12.96 77 | 2016;11;24;03;00;5.19;95.00;1024.60;0.00;0.00;1.94;291.80;15.12 78 | 2016;11;24;04;00;5.24;95.00;1025.20;0.00;0.00;1.94;291.80;15.48 79 | 2016;11;24;05;00;4.96;95.00;1024.90;0.00;0.00;3.32;319.40;10.80 80 | 2016;11;24;06;00;5.18;95.00;1025.40;0.00;0.00;5.90;322.43;18.72 81 | 2016;11;24;07;00;5.87;96.00;1025.10;0.00;0.00;9.09;326.31;19.80 82 | 2016;11;24;08;00;6.43;96.00;1025.90;0.00;0.00;12.50;348.37;16.92 83 | 2016;11;24;09;00;6.69;94.00;1027.30;0.00;0.00;11.88;360.00;20.52 84 | 2016;11;24;10;00;7.24;91.00;1027.70;0.00;0.00;12.61;358.36;17.28 85 | 2016;11;24;11;00;8.57;74.00;1027.60;0.00;0.00;15.16;4.09;17.28 86 | 2016;11;24;12;00;9.50;63.00;1028.10;0.00;0.00;15.27;8.13;16.20 87 | 2016;11;24;13;00;9.36;58.00;1025.00;0.00;0.00;14.41;12.99;18.72 88 | 2016;11;24;14;00;9.58;50.00;1025.20;0.00;0.00;14.00;17.97;17.64 89 | 2016;11;24;15;00;8.88;51.00;1025.50;0.00;0.00;11.18;14.93;17.28 90 | 2016;11;24;16;00;7.66;58.00;1026.30;0.00;0.00;9.47;8.75;16.20 91 | 2016;11;24;17;00;6.64;64.00;1027.30;0.00;0.00;8.64;360.00;13.68 92 | 2016;11;24;18;00;5.58;71.00;1027.40;0.00;0.00;8.31;355.03;12.24 93 | 2016;11;24;19;00;4.37;79.00;1027.50;0.00;0.00;8.35;352.57;17.28 94 | 2016;11;24;20;00;3.28;85.00;1028.10;0.00;0.00;8.67;355.24;16.56 95 | 2016;11;24;21;00;2.60;87.00;1028.10;0.00;0.00;7.57;357.27;15.12 96 | 2016;11;24;22;00;2.33;85.00;1028.60;0.00;0.00;6.95;338.75;12.24 97 | 2016;11;24;23;00;2.27;84.00;1028.80;0.00;0.00;7.10;329.53;10.80 98 | 2016;11;25;00;00;2.20;83.00;1028.60;0.00;0.00;7.70;322.59;12.60 99 | 2016;11;25;01;00;2.01;83.00;1029.40;0.00;0.00;7.65;318.81;16.92 100 | 2016;11;25;02;00;1.27;87.00;1029.10;0.00;0.00;7.65;318.81;18.36 101 | 2016;11;25;03;00;0.41;93.00;1029.30;0.00;0.00;8.21;322.13;21.24 102 | 2016;11;25;04;00;0.97;87.00;1029.80;0.00;0.00;8.56;337.75;19.80 103 | 2016;11;25;05;00;2.16;97.00;1030.00;0.00;0.00;9.83;351.57;16.56 104 | 2016;11;25;06;00;2.42;97.00;1030.20;0.00;0.00;8.05;349.70;21.96 105 | 2016;11;25;07;00;2.39;96.00;1029.80;0.00;0.00;7.57;357.27;18.72 106 | 2016;11;25;08;00;2.31;95.00;1030.80;0.00;0.00;6.12;360.00;17.64 107 | 2016;11;25;09;00;2.57;94.00;1031.30;0.00;0.00;3.96;360.00;14.40 108 | 2016;11;25;10;00;2.98;93.00;1031.70;0.00;0.00;2.52;360.00;12.24 109 | 2016;11;25;11;00;3.37;92.00;1031.50;0.00;0.00;2.74;23.20;10.80 110 | 2016;11;25;12;00;4.00;89.00;1032.30;0.00;0.00;1.44;360.00;9.36 111 | 2016;11;25;13;00;7.25;74.00;1027.00;0.00;0.00;5.09;278.13;5.40 112 | 2016;11;25;14;00;7.21;74.00;1026.30;0.00;0.00;6.21;280.01;6.48 113 | 2016;11;25;15;00;6.70;76.00;1026.60;0.00;0.00;5.80;277.13;5.76 114 | 2016;11;25;16;00;6.15;78.00;1026.50;0.00;0.00;6.49;266.82;8.64 115 | 2016;11;25;17;00;5.56;80.00;1026.70;0.00;0.00;7.24;264.29;10.44 116 | 2016;11;25;18;00;4.85;84.00;1026.80;0.00;0.00;7.70;259.22;12.96 117 | 2016;11;25;19;00;3.95;88.00;1026.00;0.00;0.00;8.31;252.35;15.12 118 | 2016;11;25;20;00;3.26;90.00;1026.50;0.00;0.00;8.65;253.07;15.48 119 | 2016;11;25;21;00;2.57;93.00;1026.90;0.00;0.00;9.45;252.26;17.64 120 | 2016;11;25;22;00;1.70;96.00;1026.40;0.00;0.00;10.04;255.47;20.88 121 | 2016;11;25;23;00;1.63;96.00;1026.50;0.00;0.00;11.97;263.09;23.40 122 | 2016;11;26;00;00;1.56;95.00;1026.00;0.00;0.00;13.63;257.80;28.44 123 | 2016;11;26;01;00;1.50;95.00;1025.80;0.00;0.00;14.00;252.03;25.92 124 | 2016;11;26;02;00;1.35;95.00;1025.40;0.00;0.00;14.71;248.46;25.92 125 | 2016;11;26;03;00;1.17;95.00;1025.40;0.00;0.00;15.18;247.69;27.00 126 | 2016;11;26;04;00;0.97;95.00;1024.90;0.00;0.00;15.84;248.68;25.56 127 | 2016;11;26;05;00;0.83;95.00;1024.40;0.00;0.00;16.52;249.59;26.28 128 | 2016;11;26;06;00;0.80;95.00;1024.50;0.00;0.00;17.58;247.11;29.16 129 | 2016;11;26;07;00;0.75;95.00;1023.60;0.00;0.00;18.86;246.37;32.04 130 | 2016;11;26;08;00;0.77;95.00;1023.20;0.00;0.00;19.34;245.82;34.56 131 | 2016;11;26;09;00;1.24;94.00;1022.90;0.00;0.00;19.64;243.90;36.36 132 | 2016;11;26;10;00;2.12;90.00;1022.40;0.00;0.00;21.25;243.87;38.52 133 | 2016;11;26;11;00;3.70;85.00;1021.60;0.00;0.00;22.55;245.48;37.08 134 | 2016;11;26;12;00;5.14;80.00;1021.20;0.00;0.00;24.74;248.66;39.96 135 | 2016;11;26;13;00;6.33;69.00;1016.30;0.00;0.00;29.50;250.02;39.24 136 | 2016;11;26;14;00;6.47;71.00;1014.90;0.00;0.00;29.96;249.61;40.32 137 | 2016;11;26;15;00;5.95;74.00;1013.90;0.00;0.00;30.30;249.84;40.68 138 | 2016;11;26;16;00;4.98;78.00;1013.80;0.00;0.00;29.16;249.78;39.24 139 | 2016;11;26;17;00;4.71;79.00;1013.80;0.00;0.00;31.42;251.98;40.32 140 | 2016;11;26;18;00;4.50;80.00;1012.60;0.00;0.00;31.96;255.65;42.12 141 | 2016;11;26;19;00;4.37;81.00;1011.50;0.10;0.00;32.91;250.18;43.56 142 | 2016;11;26;20;00;4.45;83.00;1011.40;0.00;0.00;32.11;250.35;44.64 143 | 2016;11;26;21;00;4.32;86.00;1011.00;0.00;0.00;31.21;258.69;42.84 144 | 2016;11;26;22;00;4.18;88.00;1010.70;0.00;0.00;32.57;256.58;43.92 145 | 2016;11;26;23;00;4.20;88.00;1010.80;0.00;0.00;31.85;259.58;42.84 146 | 2016;11;27;00;00;4.32;90.00;1009.60;0.00;0.00;31.78;260.22;43.56 147 | 2016;11;27;01;00;4.70;91.00;1009.80;0.00;0.00;32.02;261.60;41.04 148 | 2016;11;27;02;00;4.76;92.00;1009.50;0.00;0.00;33.28;264.41;42.84 149 | 2016;11;27;03;00;4.65;94.00;1009.20;0.00;0.00;32.04;270.00;40.68 150 | 2016;11;27;04;00;4.63;95.00;1009.50;0.00;0.00;29.93;273.45;37.80 151 | 2016;11;27;05;00;4.45;93.00;1009.70;0.00;0.00;31.68;270.65;39.96 152 | 2016;11;27;06;00;4.26;92.00;1009.80;0.00;0.00;34.23;272.41;44.64 153 | 2016;11;27;07;00;4.24;92.00;1009.20;0.00;0.00;33.67;276.14;43.56 154 | 2016;11;27;08;00;4.66;89.00;1010.50;0.00;0.00;32.62;292.04;42.12 155 | 2016;11;27;09;00;5.19;73.00;1010.80;0.00;0.00;29.38;306.03;39.24 156 | 2016;11;27;10;00;5.33;71.00;1011.60;0.00;0.00;32.78;301.07;40.68 157 | 2016;11;27;11;00;5.76;65.00;1012.40;0.00;0.00;34.30;309.04;41.40 158 | 2016;11;27;12;00;6.05;59.00;1012.30;0.00;0.00;35.31;309.21;45.36 159 | 2016;11;27;13;00;6.31;52.00;1009.40;0.00;0.00;28.86;319.55;37.80 160 | 2016;11;27;14;00;5.88;49.00;1010.10;0.00;0.00;30.60;323.13;38.52 161 | 2016;11;27;15;00;4.99;51.00;1010.50;0.00;0.00;29.09;323.56;37.80 162 | 2016;11;27;16;00;3.70;56.00;1011.40;0.00;0.00;26.83;319.90;37.80 163 | 2016;11;27;17;00;2.79;61.00;1012.10;0.00;0.00;26.23;316.67;38.16 164 | 2016;11;27;18;00;2.23;63.00;1012.10;0.00;0.00;25.48;317.29;37.80 165 | 2016;11;27;19;00;2.38;57.00;1012.40;0.00;0.00;28.36;326.92;40.32 166 | 2016;11;27;20;00;1.87;58.00;1013.30;0.00;0.00;27.46;325.68;39.24 167 | 2016;11;27;21;00;2.02;62.00;1013.90;0.00;0.00;29.06;326.11;39.60 168 | 2016;11;27;22;00;1.87;65.00;1014.70;0.00;0.00;32.27;321.34;41.04 169 | 2016;11;27;23;00;1.39;71.00;1014.90;0.00;0.00;33.90;318.01;44.28 170 | 2016;11;28;00;00;1.22;79.00;1014.80;0.00;0.00;37.93;314.62;52.56 171 | 2016;11;28;01;00;1.24;85.00;1015.90;0.00;0.00;42.64;319.45;59.40 172 | 2016;11;28;02;00;0.95;92.00;1016.40;0.00;0.21;53.78;328.97;60.48 173 | 2016;11;28;03;00;1.01;92.00;1017.40;0.00;0.07;50.32;329.95;56.16 174 | 2016;11;28;04;00;1.02;92.00;1018.20;0.00;0.07;50.24;332.70;54.72 175 | 2016;11;28;05;00;0.97;91.00;1019.00;0.00;0.00;48.60;337.80;57.96 176 | 2016;11;28;06;00;0.81;89.00;1020.80;0.00;0.00;49.98;340.65;56.16 177 | 2016;11;28;07;00;0.85;88.00;1020.80;0.00;0.00;52.96;343.41;59.40 178 | 2016;11;28;08;00;0.90;88.00;1022.30;0.00;0.00;52.17;343.57;65.52 179 | 2016;11;28;09;00;1.49;85.00;1023.50;0.00;0.00;54.24;347.35;64.44 180 | 2016;11;28;10;00;2.23;77.00;1024.30;0.00;0.00;55.24;352.13;61.56 181 | 2016;11;28;11;00;2.57;72.00;1025.70;0.00;0.00;56.78;354.54;64.80 182 | 2016;11;28;12;00;2.93;69.00;1027.40;0.00;0.00;55.22;355.89;60.12 183 | 2016;11;28;13;00;1.94;77.00;1024.40;0.00;0.00;41.66;6.45;48.96 184 | 2016;11;28;14;00;1.70;78.00;1025.10;0.00;0.00;39.05;5.29;46.44 185 | 2016;11;28;15;00;1.20;82.00;1027.10;0.00;0.00;33.91;3.65;42.12 186 | 2016;11;28;16;00;0.14;85.00;1027.90;0.00;0.00;26.01;355.24;35.28 187 | 2016;11;28;17;00;-0.30;86.00;1028.50;0.00;0.00;23.34;340.17;39.24 188 | 2016;11;28;18;00;-0.44;86.00;1029.40;0.00;0.00;24.48;331.93;37.08 189 | 2016;11;28;19;00;-0.68;86.00;1029.70;0.00;0.00;22.47;324.78;29.88 190 | 2016;11;28;20;00;-0.72;88.00;1030.30;0.00;0.00;22.92;313.73;29.16 191 | 2016;11;28;21;00;-0.64;88.00;1030.80;0.00;0.00;22.39;306.50;32.04 192 | 2016;11;28;22;00;-0.70;90.00;1030.90;0.00;0.00;24.64;295.07;34.92 193 | 2016;11;28;23;00;-0.74;90.00;1030.70;0.00;0.00;27.35;290.82;34.92 194 | 2016;11;29;00;00;-0.40;86.00;1030.40;0.00;0.00;30.17;289.52;40.32 195 | 2016;11;29;01;00;-0.12;83.00;1030.20;0.00;0.00;33.13;289.03;42.84 196 | 2016;11;29;02;00;0.07;80.00;1029.90;0.00;0.00;35.46;285.31;47.52 197 | 2016;11;29;03;00;0.09;80.00;1029.80;0.00;0.00;38.51;283.52;47.52 198 | 2016;11;29;04;00;0.17;80.00;1029.20;0.00;0.00;41.21;284.16;55.80 199 | 2016;11;29;05;00;0.17;86.00;1028.20;0.00;0.00;44.28;282.68;54.72 200 | 2016;11;29;06;00;0.45;88.00;1028.80;0.00;0.00;48.28;284.24;60.48 201 | 2016;11;29;07;00;0.12;89.00;1028.10;0.00;0.00;49.07;287.50;57.60 202 | 2016;11;29;08;00;0.54;89.00;1028.20;0.00;0.00;49.35;293.20;57.24 203 | 2016;11;29;09;00;1.57;90.00;1028.60;0.00;0.00;48.10;300.60;54.36 204 | 2016;11;29;10;00;2.97;92.00;1028.90;0.00;0.00;45.32;308.87;51.48 205 | 2016;11;29;11;00;3.74;92.00;1029.10;0.00;0.00;45.87;312.46;50.04 206 | 2016;11;29;12;00;4.09;90.00;1029.90;0.00;0.00;45.06;314.03;48.60 207 | 2016;11;29;13;00;5.42;78.00;1028.10;0.00;0.00;22.97;302.20;31.32 208 | 2016;11;29;14;00;5.55;77.00;1027.60;0.00;0.00;22.57;303.94;30.24 209 | 2016;11;29;15;00;5.49;73.00;1028.70;0.00;0.00;22.47;305.22;29.16 210 | 2016;11;29;16;00;4.79;78.00;1028.90;0.00;0.00;17.71;296.57;25.20 211 | 2016;11;29;17;00;4.48;83.00;1029.40;0.00;0.00;16.04;279.04;22.68 212 | 2016;11;29;18;00;3.83;87.00;1029.00;0.00;0.00;18.72;270.00;23.76 213 | 2016;11;29;19;00;3.70;84.00;1029.00;0.00;0.00;23.80;273.47;31.32 214 | 2016;11;29;20;00;3.27;82.00;1029.50;0.00;0.00;25.20;270.82;33.12 215 | 2016;11;29;21;00;2.43;81.00;1029.50;0.00;0.00;22.75;265.46;32.40 216 | 2016;11;29;22;00;2.08;80.00;1029.10;0.00;0.00;26.48;262.97;33.48 217 | 2016;11;29;23;00;1.64;83.00;1028.90;0.00;0.00;24.72;257.38;34.56 218 | 2016;11;30;00;00;0.84;82.00;1028.00;0.00;0.00;25.52;253.61;38.88 219 | 2016;11;30;01;00;0.30;81.00;1028.10;0.00;0.00;28.39;254.55;39.96 220 | 2016;11;30;02;00;-0.16;84.00;1027.40;0.10;0.00;35.07;252.68;41.76 221 | 2016;11;30;03;00;-0.44;88.00;1026.90;0.20;0.00;43.48;255.62;50.40 222 | 2016;11;30;04;00;-0.40;89.00;1025.90;0.10;0.00;45.41;255.30;50.04 223 | 2016;11;30;05;00;-0.20;89.00;1024.70;0.00;0.00;46.89;255.32;53.64 224 | 2016;11;30;06;00;-0.14;90.00;1024.80;0.00;0.00;50.14;257.56;54.00 225 | 2016;11;30;07;00;-0.22;91.00;1023.40;0.10;0.21;51.55;259.95;54.72 226 | 2016;11;30;08;00;0.23;92.00;1023.70;0.10;0.21;50.84;266.75;55.44 227 | 2016;11;30;09;00;1.29;87.00;1023.10;0.00;0.00;50.50;273.68;56.16 228 | 2016;11;30;10;00;2.07;86.00;1022.80;0.00;0.00;48.42;278.55;54.72 229 | 2016;11;30;11;00;3.60;85.00;1022.70;0.00;0.00;48.73;282.80;54.36 230 | 2016;11;30;12;00;4.82;84.00;1022.80;0.00;0.00;48.28;287.35;56.16 231 | 2016;11;30;13;00;4.06;71.00;1019.70;0.00;0.00;47.72;275.19;52.56 232 | 2016;11;30;14;00;4.22;75.00;1019.10;0.00;0.00;45.92;275.40;51.12 233 | 2016;11;30;15;00;3.88;80.00;1019.30;0.00;0.00;43.66;273.78;48.24 234 | 2016;11;30;16;00;3.37;86.00;1018.80;0.00;0.00;41.41;271.00;47.88 235 | 2016;11;30;17;00;3.43;89.00;1018.70;0.00;0.00;41.40;269.50;48.60 236 | 2016;11;30;18;00;3.42;93.00;1018.20;0.00;0.00;43.20;270.00;49.32 237 | 2016;11;30;19;00;3.67;94.00;1017.60;0.00;0.00;41.55;278.97;48.60 238 | 2016;11;30;20;00;4.35;94.00;1018.00;0.00;0.00;37.69;294.85;46.08 239 | 2016;11;30;21;00;4.29;91.00;1018.70;0.00;0.00;36.83;291.80;45.36 240 | 2016;11;30;22;00;3.73;94.00;1018.40;0.00;0.00;35.31;290.28;43.20 241 | 2016;11;30;23;00;3.08;99.00;1018.50;0.00;0.00;32.56;288.03;41.04 242 | 2016;12;01;00;00;3.40;97.00;1018.60;0.00;0.00;33.27;283.13;38.88 243 | 2016;12;01;01;00;3.42;97.00;1018.10;0.00;0.00;26.93;278.46;39.60 244 | 2016;12;01;02;00;3.96;98.00;1017.00;0.00;0.00;28.52;265.66;34.92 245 | 2016;12;01;03;00;3.72;97.00;1016.40;0.40;0.00;21.79;239.20;30.96 246 | 2016;12;01;04;00;3.92;97.00;1015.30;0.50;0.00;36.66;262.67;49.68 247 | 2016;12;01;05;00;4.04;97.00;1013.70;0.50;0.00;39.42;260.54;45.36 248 | 2016;12;01;06;00;4.33;97.00;1013.10;0.10;0.00;42.20;266.58;47.88 249 | 2016;12;01;07;00;4.61;97.00;1012.00;0.30;0.00;39.66;266.88;48.24 250 | 2016;12;01;08;00;4.97;97.00;1010.60;0.40;0.00;45.72;269.55;54.36 251 | 2016;12;01;09;00;5.63;96.00;1010.00;0.40;0.00;49.04;273.37;54.72 252 | 2016;12;01;10;00;6.34;94.00;1009.50;0.20;0.00;49.84;278.31;55.80 253 | 2016;12;01;11;00;7.83;89.00;1008.30;0.10;0.00;51.01;287.67;56.88 254 | 2016;12;01;12;00;8.59;87.00;1008.10;0.10;0.00;50.89;295.11;56.16 255 | 2016;12;01;13;00;6.10;92.00;1007.80;0.80;0.00;9.66;243.43;15.48 256 | 2016;12;01;14;00;6.14;93.00;1006.50;0.70;0.00;7.42;219.09;19.44 257 | 2016;12;01;15;00;6.08;96.00;1005.40;0.80;0.00;5.63;206.57;27.36 258 | 2016;12;01;16;00;7.09;95.00;1004.60;0.80;0.00;15.46;282.09;39.60 259 | 2016;12;01;17;00;7.30;93.00;1004.60;0.60;0.00;25.84;288.69;41.04 260 | 2016;12;01;18;00;7.23;92.00;1003.40;0.40;0.00;26.11;285.19;41.04 261 | 2016;12;01;19;00;7.11;93.00;1002.00;0.40;0.00;25.86;278.81;40.68 262 | 2016;12;01;20;00;7.11;91.00;1001.10;0.40;0.00;32.79;278.84;47.52 263 | 2016;12;01;21;00;6.88;90.00;1000.00;0.40;0.00;35.52;280.51;51.12 264 | 2016;12;01;22;00;6.59;90.00;999.00;0.40;0.00;37.17;278.91;55.44 265 | 2016;12;01;23;00;6.40;89.00;998.40;0.40;0.00;40.03;281.41;57.60 266 | 2016;12;02;00;00;6.12;88.00;997.00;0.30;0.00;40.88;289.55;56.16 267 | 2016;12;02;01;00;5.04;74.00;997.80;0.30;0.00;45.19;300.65;61.20 268 | 2016;12;02;02;00;4.16;75.00;998.30;0.10;0.07;43.11;311.28;58.68 269 | 2016;12;02;03;00;3.56;73.00;998.80;0.10;0.21;40.71;308.90;55.44 270 | 2016;12;02;04;00;3.01;68.00;999.20;0.00;0.00;41.62;307.27;58.68 271 | 2016;12;02;05;00;2.62;80.00;999.40;0.00;0.00;40.34;302.98;58.32 272 | 2016;12;02;06;00;2.88;86.00;1001.40;0.00;0.00;43.99;331.13;61.92 273 | 2016;12;02;07;00;2.66;81.00;1004.70;0.00;0.00;44.09;8.92;61.92 274 | 2016;12;02;08;00;2.37;74.00;1008.20;0.00;0.00;31.35;2.63;46.80 275 | 2016;12;02;09;00;3.20;79.00;1010.70;0.00;0.00;28.14;343.65;38.52 276 | 2016;12;02;10;00;3.71;76.00;1012.50;0.00;0.00;27.56;340.14;34.56 277 | 2016;12;02;11;00;4.00;74.00;1013.80;0.00;0.00;25.49;323.62;34.56 278 | 2016;12;02;12;00;4.82;67.00;1014.10;0.00;0.00;25.58;309.29;33.84 279 | 2016;12;02;13;00;4.84;64.00;1012.40;0.00;0.00;40.51;317.52;45.36 280 | 2016;12;02;14;00;4.94;67.00;1013.00;0.00;0.00;37.94;316.15;42.84 281 | 2016;12;02;15;00;4.81;72.00;1014.00;0.00;0.00;34.62;314.16;40.68 282 | 2016;12;02;16;00;2.96;82.00;1014.30;0.00;0.00;32.11;307.26;37.80 283 | 2016;12;02;17;00;2.27;85.00;1015.00;0.00;0.00;30.50;300.50;44.28 284 | 2016;12;02;18;00;1.60;87.00;1015.70;0.00;0.00;28.67;298.50;36.36 285 | 2016;12;02;19;00;2.60;86.00;1015.80;0.00;0.00;29.30;307.01;37.08 286 | 2016;12;02;20;00;2.67;89.00;1016.10;0.00;0.00;28.12;309.81;37.08 287 | 2016;12;02;21;00;1.74;95.00;1016.90;0.00;0.00;24.80;309.70;33.48 288 | 2016;12;02;22;00;1.21;95.00;1017.20;0.00;0.00;23.19;306.16;32.04 289 | 2016;12;02;23;00;1.23;93.00;1017.70;0.00;0.00;22.41;313.70;30.96 290 | 2016;12;03;00;00;0.64;92.00;1018.70;0.00;0.00;23.42;315.00;29.52 291 | 2016;12;03;01;00;0.56;91.00;1019.00;0.00;0.00;24.69;314.41;33.48 292 | 2016;12;03;02;00;0.34;91.00;1019.40;0.00;0.00;26.98;315.00;31.68 293 | 2016;12;03;03;00;0.33;92.00;1020.80;0.00;0.00;30.11;318.88;35.64 294 | 2016;12;03;04;00;0.60;91.00;1021.40;0.00;0.00;34.36;324.81;38.88 295 | 2016;12;03;05;00;1.12;90.00;1022.20;0.00;0.00;39.12;333.20;40.68 296 | 2016;12;03;06;00;0.46;93.00;1023.20;0.00;0.00;34.90;338.20;40.68 297 | 2016;12;03;07;00;-0.24;93.00;1023.60;0.00;0.00;27.21;332.42;34.92 298 | 2016;12;03;08;00;-0.42;87.00;1024.90;0.00;0.00;24.48;323.97;31.32 299 | 2016;12;03;09;00;0.56;80.00;1025.70;0.00;0.00;24.76;319.13;32.76 300 | 2016;12;03;10;00;1.80;74.00;1026.20;0.00;0.00;27.03;318.24;30.24 301 | 2016;12;03;11;00;2.68;66.00;1026.40;0.00;0.00;28.02;317.08;29.16 302 | 2016;12;03;12;00;3.29;57.00;1027.00;0.00;0.00;29.41;309.54;39.60 303 | 2016;12;03;13;00;4.17;69.00;1023.70;0.00;0.00;24.16;294.66;30.60 304 | 2016;12;03;14;00;4.14;64.00;1023.80;0.00;0.00;23.68;289.54;30.24 305 | 2016;12;03;15;00;3.75;67.00;1024.80;0.00;0.00;22.55;289.59;30.24 306 | 2016;12;03;16;00;2.67;74.00;1024.60;0.00;0.00;21.13;283.80;29.88 307 | 2016;12;03;17;00;1.95;79.00;1025.20;0.00;0.00;21.83;283.35;31.32 308 | 2016;12;03;18;00;1.31;84.00;1025.30;0.00;0.00;22.03;281.31;31.68 309 | 2016;12;03;19;00;0.96;88.00;1025.40;0.00;0.00;23.23;282.53;33.84 310 | 2016;12;03;20;00;0.78;92.00;1026.30;0.00;0.00;22.45;285.82;33.48 311 | 2016;12;03;21;00;0.55;93.00;1026.40;0.00;0.00;20.62;286.22;30.24 312 | 2016;12;03;22;00;0.86;91.00;1026.50;0.00;0.00;20.43;284.28;34.20 313 | 2016;12;03;23;00;1.02;91.00;1026.90;0.00;0.00;20.19;281.31;37.08 314 | 2016;12;04;00;00;0.95;91.00;1026.60;0.00;0.00;19.60;277.39;30.60 315 | 2016;12;04;01;00;0.60;92.00;1026.90;0.00;0.00;17.64;271.17;25.56 316 | 2016;12;04;02;00;0.30;93.00;1027.30;0.00;0.00;18.01;272.29;29.52 317 | 2016;12;04;03;00;0.09;93.00;1027.50;0.00;0.00;17.67;273.50;28.44 318 | 2016;12;04;04;00;0.63;90.00;1028.40;0.00;0.00;18.36;271.12;28.44 319 | 2016;12;04;05;00;0.34;93.00;1028.30;0.00;0.00;20.16;268.98;24.48 320 | 2016;12;04;06;00;-0.06;93.00;1028.90;0.00;0.00;25.56;270.00;30.60 321 | 2016;12;04;07;00;-0.19;93.00;1029.40;0.00;0.00;27.91;276.67;29.88 322 | 2016;12;04;08;00;-0.16;94.00;1029.90;0.00;0.00;25.92;279.59;28.80 323 | 2016;12;04;09;00;0.41;92.00;1030.60;0.00;0.00;24.37;282.80;26.64 324 | 2016;12;04;10;00;1.14;91.00;1031.20;0.00;0.00;22.70;284.70;22.68 325 | 2016;12;04;11;00;1.49;91.00;1031.70;0.00;0.00;21.57;284.50;20.16 326 | 2016;12;04;12;00;2.25;88.00;1032.50;0.00;0.00;20.28;286.50;17.64 327 | 2016;12;04;13;00;1.19;88.00;1030.90;0.00;0.00;16.85;250.02;16.92 328 | 2016;12;04;14;00;1.38;89.00;1031.20;0.00;0.00;18.12;249.04;18.36 329 | 2016;12;04;15;00;1.16;91.00;1032.20;0.00;0.00;17.76;252.30;21.24 330 | 2016;12;04;16;00;0.90;93.00;1032.30;0.00;0.00;17.25;246.64;21.96 331 | 2016;12;04;17;00;0.81;94.00;1032.30;0.00;0.00;17.55;244.49;21.96 332 | 2016;12;04;18;00;0.70;94.00;1032.20;0.00;0.00;18.53;245.92;21.60 333 | 2016;12;04;19;00;0.67;94.00;1032.70;0.00;0.00;21.13;246.93;24.48 334 | 2016;12;04;20;00;0.63;94.00;1032.80;0.00;0.00;22.93;247.86;25.56 335 | 2016;12;04;21;00;0.57;94.00;1032.60;0.00;0.00;24.97;245.28;24.84 336 | 2016;12;04;22;00;0.56;94.00;1032.50;0.00;0.00;26.76;246.19;32.04 337 | 2016;12;04;23;00;0.56;95.00;1032.70;0.00;0.00;27.35;249.18;27.36 338 | 2016;12;05;00;00;0.52;95.00;1032.60;0.00;0.00;27.90;250.40;28.80 339 | 2016;12;05;01;00;0.64;95.00;1032.60;0.00;0.00;27.48;248.48;29.88 340 | 2016;12;05;02;00;0.74;95.00;1032.20;0.00;0.00;27.75;247.09;33.84 341 | 2016;12;05;03;00;0.83;95.00;1032.40;0.00;0.00;28.95;248.86;35.28 342 | 2016;12;05;04;00;0.86;95.00;1032.10;0.00;0.00;29.50;250.02;36.72 343 | 2016;12;05;05;00;0.77;95.00;1031.30;0.00;0.00;30.30;249.84;37.44 344 | 2016;12;05;06;00;0.67;95.00;1031.90;0.00;0.00;30.76;249.44;33.48 345 | 2016;12;05;07;00;0.46;95.00;1031.10;0.00;0.00;31.56;249.29;34.20 346 | 2016;12;05;08;00;0.23;94.00;1030.70;0.00;0.00;33.96;248.88;36.36 347 | 2016;12;05;09;00;0.43;92.00;1030.60;0.00;0.00;36.83;248.20;41.04 348 | 2016;12;05;10;00;1.01;87.00;1030.40;0.00;0.00;39.97;252.71;41.76 349 | 2016;12;05;11;00;1.57;84.00;1029.90;0.00;0.00;41.65;255.48;43.20 350 | 2016;12;05;12;00;2.26;82.00;1029.90;0.00;0.00;41.51;258.50;43.20 351 | 2016;12;05;13;00;2.96;80.00;1029.00;0.00;0.00;40.90;260.37;43.92 352 | 2016;12;05;14;00;2.98;81.00;1028.00;0.00;0.00;40.19;260.20;44.28 353 | 2016;12;05;15;00;2.41;84.00;1028.60;0.00;0.00;39.90;259.60;44.28 354 | 2016;12;05;16;00;1.87;86.00;1028.60;0.00;0.00;38.77;259.84;45.00 355 | 2016;12;05;17;00;1.60;88.00;1027.60;0.00;0.00;38.40;263.54;44.28 356 | 2016;12;05;18;00;1.34;89.00;1027.60;0.00;0.00;38.24;266.22;42.84 357 | 2016;12;05;19;00;1.41;88.00;1028.00;0.00;0.00;38.55;267.86;42.84 358 | 2016;12;05;20;00;1.42;88.00;1028.20;0.00;0.00;37.83;267.82;42.48 359 | 2016;12;05;21;00;1.37;89.00;1027.70;0.00;0.00;38.54;268.39;41.76 360 | 2016;12;05;22;00;1.44;92.00;1027.70;0.00;0.00;38.89;271.59;40.32 361 | 2016;12;05;23;00;1.66;94.00;1027.50;0.00;0.00;37.61;275.49;39.24 362 | -------------------------------------------------------------------------------- /history_export_2016-12-05T11-55-25.json: -------------------------------------------------------------------------------- 1 | {"data": [ 2 | [2016,11,21,0,0,7.43,90.00,1014.40,0.00,0.00,17.73,185.83,29.88], 3 | [2016,11,21,1,0,7.07,92.00,1015.30,0.00,0.00,14.78,182.79,33.12], 4 | [2016,11,21,2,0,6.72,93.00,1015.50,0.00,0.00,13.68,178.49,35.28], 5 | [2016,11,21,3,0,6.67,94.00,1015.80,0.00,0.00,13.80,172.50,31.32], 6 | [2016,11,21,4,0,6.74,95.00,1016.30,0.00,0.00,13.28,167.47,28.44], 7 | [2016,11,21,5,0,6.67,95.00,1016.70,0.00,0.00,13.78,160.14,27.00], 8 | [2016,11,21,6,0,6.95,97.00,1017.30,0.00,0.00,14.12,160.64,18.72], 9 | [2016,11,21,7,0,6.95,97.00,1017.00,0.00,0.00,13.44,159.62,17.64], 10 | [2016,11,21,8,0,7.13,96.00,1017.90,0.00,0.00,14.81,154.06,17.64], 11 | [2016,11,21,9,0,8.18,95.00,1017.70,0.00,0.00,15.79,155.77,19.08], 12 | [2016,11,21,10,0,9.50,91.00,1018.00,0.00,0.00,15.62,154.03,19.80], 13 | [2016,11,21,11,0,11.25,85.00,1017.80,0.00,0.00,16.90,153.43,24.12], 14 | [2016,11,21,12,0,13.09,78.00,1017.80,0.00,0.00,18.06,156.50,26.28], 15 | [2016,11,21,13,0,13.27,75.00,1015.20,0.00,0.00,19.20,149.59,20.88], 16 | [2016,11,21,14,0,13.21,75.00,1015.00,0.00,0.00,18.89,149.04,21.96], 17 | [2016,11,21,15,0,12.90,77.00,1015.00,0.00,0.00,16.79,149.04,24.12], 18 | [2016,11,21,16,0,12.47,81.00,1015.50,0.00,0.00,14.19,144.29,22.32], 19 | [2016,11,21,17,0,12.05,85.00,1015.80,0.00,0.00,13.61,142.52,24.12], 20 | [2016,11,21,18,0,11.13,89.00,1015.20,0.00,0.00,15.38,147.43,25.20], 21 | [2016,11,21,19,0,10.58,91.00,1015.30,0.00,0.00,15.84,158.68,26.64], 22 | [2016,11,21,20,0,10.23,92.00,1015.40,0.00,0.00,16.85,160.02,29.52], 23 | [2016,11,21,21,0,10.01,92.00,1016.00,0.00,0.00,17.65,163.41,27.72] 24 | ]} 25 | -------------------------------------------------------------------------------- /modules.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": { 7 | "collapsed": false 8 | }, 9 | "outputs": [], 10 | "source": [ 11 | "import modules" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": null, 17 | "metadata": { 18 | "collapsed": false 19 | }, 20 | "outputs": [], 21 | "source": [ 22 | "dir(modules)" 23 | ] 24 | }, 25 | { 26 | "cell_type": "code", 27 | "execution_count": null, 28 | "metadata": { 29 | "collapsed": false 30 | }, 31 | "outputs": [], 32 | "source": [ 33 | "import modules.fib" 34 | ] 35 | }, 36 | { 37 | "cell_type": "code", 38 | "execution_count": null, 39 | "metadata": { 40 | "collapsed": false 41 | }, 42 | "outputs": [], 43 | "source": [ 44 | "modules.fib" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": null, 50 | "metadata": { 51 | "collapsed": false 52 | }, 53 | "outputs": [], 54 | "source": [ 55 | "modules.fib.fib" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": null, 61 | "metadata": { 62 | "collapsed": false 63 | }, 64 | "outputs": [], 65 | "source": [ 66 | "from modules.fib import fib, fib_wtf" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": null, 72 | "metadata": { 73 | "collapsed": false 74 | }, 75 | "outputs": [], 76 | "source": [ 77 | "fib(10)" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": null, 83 | "metadata": { 84 | "collapsed": false 85 | }, 86 | "outputs": [], 87 | "source": [ 88 | "fib_wtf(10)" 89 | ] 90 | }, 91 | { 92 | "cell_type": "code", 93 | "execution_count": null, 94 | "metadata": { 95 | "collapsed": true 96 | }, 97 | "outputs": [], 98 | "source": [ 99 | "from modules import fib " 100 | ] 101 | }, 102 | { 103 | "cell_type": "code", 104 | "execution_count": null, 105 | "metadata": { 106 | "collapsed": false 107 | }, 108 | "outputs": [], 109 | "source": [ 110 | "fib(10)" 111 | ] 112 | }, 113 | { 114 | "cell_type": "code", 115 | "execution_count": null, 116 | "metadata": { 117 | "collapsed": false 118 | }, 119 | "outputs": [], 120 | "source": [ 121 | "fib" 122 | ] 123 | }, 124 | { 125 | "cell_type": "code", 126 | "execution_count": null, 127 | "metadata": { 128 | "collapsed": true 129 | }, 130 | "outputs": [], 131 | "source": [ 132 | "from modules.fib import fib as fib_func" 133 | ] 134 | }, 135 | { 136 | "cell_type": "code", 137 | "execution_count": null, 138 | "metadata": { 139 | "collapsed": false 140 | }, 141 | "outputs": [], 142 | "source": [ 143 | "fib_func(3)" 144 | ] 145 | }, 146 | { 147 | "cell_type": "code", 148 | "execution_count": null, 149 | "metadata": { 150 | "collapsed": true 151 | }, 152 | "outputs": [], 153 | "source": [ 154 | "import modules as wtf_modules" 155 | ] 156 | }, 157 | { 158 | "cell_type": "code", 159 | "execution_count": null, 160 | "metadata": { 161 | "collapsed": false 162 | }, 163 | "outputs": [], 164 | "source": [ 165 | "wtf_modules" 166 | ] 167 | }, 168 | { 169 | "cell_type": "code", 170 | "execution_count": null, 171 | "metadata": { 172 | "collapsed": true 173 | }, 174 | "outputs": [], 175 | "source": [ 176 | "from modules import *" 177 | ] 178 | }, 179 | { 180 | "cell_type": "code", 181 | "execution_count": null, 182 | "metadata": { 183 | "collapsed": false 184 | }, 185 | "outputs": [], 186 | "source": [ 187 | "int(2) == 2" 188 | ] 189 | }, 190 | { 191 | "cell_type": "code", 192 | "execution_count": null, 193 | "metadata": { 194 | "collapsed": false 195 | }, 196 | "outputs": [], 197 | "source": [ 198 | "int(2)" 199 | ] 200 | }, 201 | { 202 | "cell_type": "code", 203 | "execution_count": null, 204 | "metadata": { 205 | "collapsed": true 206 | }, 207 | "outputs": [], 208 | "source": [ 209 | "y = 1+1 == 2" 210 | ] 211 | }, 212 | { 213 | "cell_type": "code", 214 | "execution_count": null, 215 | "metadata": { 216 | "collapsed": false 217 | }, 218 | "outputs": [], 219 | "source": [ 220 | "y is True" 221 | ] 222 | }, 223 | { 224 | "cell_type": "code", 225 | "execution_count": null, 226 | "metadata": { 227 | "collapsed": false 228 | }, 229 | "outputs": [], 230 | "source": [ 231 | "True" 232 | ] 233 | } 234 | ], 235 | "metadata": { 236 | "kernelspec": { 237 | "display_name": "Python 2", 238 | "language": "python", 239 | "name": "python2" 240 | }, 241 | "language_info": { 242 | "codemirror_mode": { 243 | "name": "ipython", 244 | "version": 2 245 | }, 246 | "file_extension": ".py", 247 | "mimetype": "text/x-python", 248 | "name": "python", 249 | "nbconvert_exporter": "python", 250 | "pygments_lexer": "ipython2", 251 | "version": "2.7.6" 252 | } 253 | }, 254 | "nbformat": 4, 255 | "nbformat_minor": 2 256 | } 257 | -------------------------------------------------------------------------------- /modules/__init__.py: -------------------------------------------------------------------------------- 1 | # ahihihi 2 | True, False = False, True 3 | int = lambda x: 'nope' 4 | 5 | -------------------------------------------------------------------------------- /modules/database.py: -------------------------------------------------------------------------------- 1 | import sqlite3 2 | 3 | # pozwolilem sobie zmodyfikowac stringa - {} zamienilem na nazewnictwo 4 | db_insert_query = "INSERT INTO measures (meas_time, temp, humidity, pressure) VALUES ('{day}','{temperature}','{humidity}','{pressure}');" 5 | 6 | 7 | def init(filename): 8 | # czesto ludzie dodawali argument filename do inicjalizacji bazy 9 | # +1 dla was 10 | db = sqlite3.connect(filename) 11 | db.execute(''' 12 | DROP TABLE IF EXISTS `measures`; 13 | ''') 14 | db.execute('''CREATE TABLE IF NOT EXISTS measures ( 15 | meas_time INT PRIMARY KEY, 16 | temp NUMERIC, 17 | humidity NUMERIC, 18 | pressure NUMERIC 19 | );''') 20 | 21 | # to byl moj temat rozwazan - czy chce uzyc db jako zmienna globalna 22 | # w tym module albo zwracam polaczenie jako wynik tej funkcji? 23 | # to jest pytanie dosc programistyczno-filozoficzne 24 | # 1) db jako stala globalna po za funkcja: 25 | # + nie musimy ja zwracac po inicjalizacji 26 | # oraz uzywac jej jako pierwszy argument (jak w jezyku C) 27 | # + osoba korzystajaca z tego modulu nie musi sie martwic polaczeniem 28 | # - nie mozna takim sposobem posiadac wiele polaczen naraz 29 | # 2) db jako zwrocona wartosc funkcji 30 | # + mozna posiadac wiele polaczen naraz 31 | # + wygodniejsze testowanie (mozemy modifikowac polaczenie recznie w razie potrzeby) 32 | # - programista musi pilnowac obiekt 33 | # 3) Obiektowosc :) Bedzie na kolejnym spotkaniu 34 | # ja postanowilem zwracac. 35 | return db 36 | 37 | 38 | def add_record(db, day, temperature, humidity, pressure): 39 | # funkcje w pythonie posiadaja tak zwane keywords 40 | # mozemy sie odwolac do nazwanego argumentu funkcji 41 | # wiecej: https://docs.python.org/2/tutorial/controlflow.html#keyword-arguments 42 | query = db_insert_query.format( 43 | day=day, 44 | temperature=temperature, 45 | humidity=humidity, 46 | pressure=pressure, 47 | ) 48 | db.execute(query) 49 | db.commit() 50 | 51 | 52 | def close(db): 53 | db.close() 54 | 55 | -------------------------------------------------------------------------------- /modules/enum_csv.py: -------------------------------------------------------------------------------- 1 | CSV_YEAR = 0 2 | CSV_MONTH = 1 3 | CSV_DAY = 2 4 | CSV_HOUR = 3 5 | CSV_MINUTE = 4 6 | CSV_TEMP = 5 7 | CSV_RH = 6 8 | CSV_PRESS = 7 9 | -------------------------------------------------------------------------------- /modules/fib.py: -------------------------------------------------------------------------------- 1 | def fib(n): 2 | if n in (0, 1): 3 | return n 4 | return fib(n-1) + fib(n-2) 5 | 6 | print 'Hai guyz' 7 | 8 | def fib_wtf(n): 9 | if n == 0: 10 | return 11 11 | elif n == 1: 12 | return 42 13 | else: 14 | return fib_wtf(n-1) + fib_wtf(n-2) 15 | 16 | if __name__ == "__main__": 17 | from sys import argv 18 | print fib(int(argv[1])) 19 | 20 | -------------------------------------------------------------------------------- /modules/fiz.py: -------------------------------------------------------------------------------- 1 | def fizzbuzz(n,f="Fizz",b="Buzz"): 2 | if n==0: return "" 3 | x="1" 4 | for i in range(2,n+1): 5 | x += '\n' + fizzbuzz_single(i,f,b) 6 | 7 | return x 8 | 9 | def fizzbuzz_single(i,f,b): 10 | if i%3==0 and i%5==0: 11 | return f+b 12 | elif i%3==0: 13 | return f 14 | elif i%5==0: 15 | return b 16 | else: 17 | return str(i) 18 | 19 | def fizzbuzz_array(n,f='Fizz',b='Buzz'): 20 | l = [] 21 | for i in range(1, n): 22 | l.append(fizzbuzz_single(n,f,b)) 23 | return l 24 | #??? 25 | -------------------------------------------------------------------------------- /modules/main.py: -------------------------------------------------------------------------------- 1 | # oto propowana przezemnie wersja kodu - nie wiem czy jest idealna 2 | # przyznam szczerze, ze pomysly refactoringu kodu ukradlem od was, 3 | # wiec po czesci to tez wasz kod :) 4 | import csv 5 | import json 6 | from datetime import datetime 7 | import database 8 | import output 9 | import reader 10 | from utils import modify_stats, get_day 11 | from enum_csv import CSV_TEMP, CSV_RH, CSV_PRESS 12 | 13 | temp_stats = {'abs_max': None, 'abs_min': None, 'abs_avg': None} 14 | 15 | # zamiast options - takie rzeczy powinny byc zastapione przez uzycie argumentow w konsoli 16 | # dobrym pomyslem jest uzycie modulu argparse (ktory zostal napisany przez naszego rodaka :)) 17 | # https://docs.python.org/2.7/library/argparse.html 18 | options = { 19 | 'db': True, 20 | 'out_html': False, 21 | 'out_raw': True, 22 | 'in_json': False, 23 | 'in_csv': True, 24 | } 25 | 26 | if options['db']: 27 | db = database.init('temp.db') 28 | else: 29 | db = None 30 | 31 | if options['out_html']: 32 | output.render_start_html() 33 | 34 | # tutaj probowaliscie zamienic open na cos innego - dobry pomysl 35 | # niestety ze wzgledu ze nie chcielismy wprowadzac zaawansowanego 36 | # pythona, nie wprowadzalismy dzialanie 'with' bo to wymaga wytlumaczenia 37 | # oraz obiektowosci, wiec nie bylismy w stanie zastapic open 38 | # Jezeli ktos jest zainteresowany: https://docs.python.org/2.7/library/contextlib.html 39 | # Tutaj tez zamiast stalej nazwy fajnie by bylo uzyc argparse (komentarz powyzej) 40 | with open('history_export_2016-12-05T11-55-25.csv', 'r') as csvfile: 41 | if options['in_csv']: 42 | weather_station = reader.get_from_csv(csvfile) 43 | elif options['in_json']: 44 | weather_station = reader.get_from_json(csvfile) 45 | 46 | # process data 47 | for data_row in weather_station: 48 | modify_stats(temp_stats, data_row) 49 | measured_day = get_day(data_row) 50 | if options['db']: 51 | # keywords - opisane w pliku database.py 52 | database.add_record( 53 | db=db, 54 | day=measured_day, 55 | temperature=data_row[CSV_TEMP], 56 | humidity=data_row[CSV_RH], 57 | pressure=data_row[CSV_PRESS], 58 | ) 59 | 60 | # zapakowanie danych do wyswietlenia 61 | output_data = output.get_output_data(data_row, temp_stats) 62 | 63 | if options['out_raw']: 64 | output.render_raw(output_data) 65 | if options['out_html']: 66 | output.render_html(output_data) 67 | 68 | if options['out_html']: 69 | output.render_stop_html() 70 | if options['db']: 71 | database.close(db) 72 | 73 | -------------------------------------------------------------------------------- /modules/output.py: -------------------------------------------------------------------------------- 1 | from utils import dp 2 | from enum_csv import CSV_TEMP, CSV_RH 3 | 4 | # dla wygody zmieniam to w jeden slownik danych. Mega wygodne 5 | def get_output_data(data_row, temp_stats): 6 | dew_point = dp(float(data_row[CSV_TEMP]), float(data_row[CSV_RH])) 7 | return { 8 | 'temperature': data_row[CSV_TEMP], 9 | 'max': temp_stats['abs_max'], 10 | 'min': temp_stats['abs_min'], 11 | 'avg': temp_stats['abs_avg'], 12 | 'rh': data_row[CSV_RH], 13 | 'dp': dew_point, 14 | } 15 | 16 | 17 | def render_raw(data): 18 | print "curr: {}, max: {}, min: {}, avg: {}, rh: {}, dp: {}".format( 19 | data['temperature'], 20 | data['max'], 21 | data['min'], 22 | data['avg'], 23 | data['rh'], 24 | data['dp'], 25 | ) 26 | 27 | def render_html(data): 28 | print '' 29 | print 'curr%f' % data['temperature'] 30 | print 'max%f' % data['max'] 31 | print 'min%f' % data['min'] 32 | print 'avg%f' % data['avg'] 33 | print 'rh%f' % data['rh'] 34 | print 'dp%f' % dew_point 35 | print '' 36 | 37 | def render_start_html(): 38 | print '' 39 | 40 | def render_stop_html(): 41 | print '
' 42 | -------------------------------------------------------------------------------- /modules/psy.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 39, 6 | "metadata": { 7 | "collapsed": true 8 | }, 9 | "outputs": [], 10 | "source": [ 11 | "class Pies(object):\n", 12 | " rasa = '-'\n", 13 | " kolor = '-'\n", 14 | " nazwa = ''\n", 15 | " pojemnosc = 100 # kg\n", 16 | " rzeczy = []\n", 17 | " def __init__(self, nazwa):\n", 18 | " self.nazwa = nazwa\n", 19 | " self.rzeczy = []\n", 20 | " def szczekaj(self):\n", 21 | " raise NotImplementedError('szczekaj')\n", 22 | " def jedz(self):\n", 23 | " self.pojemnosc += 1\n", 24 | " def gloduj(self):\n", 25 | " self.pojemnosc -= 1\n", 26 | " def czy_zdech(self):\n", 27 | " return self.pojemnosc <= 0" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 40, 33 | "metadata": { 34 | "collapsed": false 35 | }, 36 | "outputs": [ 37 | { 38 | "ename": "NotImplementedError", 39 | "evalue": "szczekaj", 40 | "output_type": "error", 41 | "traceback": [ 42 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 43 | "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", 44 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mPies\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m''\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mszczekaj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 45 | "\u001b[0;32m\u001b[0m in \u001b[0;36mszczekaj\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrzeczy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mszczekaj\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mNotImplementedError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'szczekaj'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mjedz\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpojemnosc\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 46 | "\u001b[0;31mNotImplementedError\u001b[0m: szczekaj" 47 | ] 48 | } 49 | ], 50 | "source": [ 51 | "Pies('').szczekaj()" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 4, 57 | "metadata": { 58 | "collapsed": true 59 | }, 60 | "outputs": [], 61 | "source": [ 62 | "class Jamnik(Pies):\n", 63 | " rasa = 'jamnik'\n", 64 | " \n", 65 | " def szczekaj(self):\n", 66 | " return 'woow woow tak bardzo'" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": 5, 72 | "metadata": { 73 | "collapsed": true 74 | }, 75 | "outputs": [], 76 | "source": [ 77 | "j = Jamnik('olek')" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 6, 83 | "metadata": { 84 | "collapsed": false 85 | }, 86 | "outputs": [ 87 | { 88 | "data": { 89 | "text/plain": [ 90 | "'woow woow tak bardzo'" 91 | ] 92 | }, 93 | "execution_count": 6, 94 | "metadata": {}, 95 | "output_type": "execute_result" 96 | } 97 | ], 98 | "source": [ 99 | "j.szczekaj()" 100 | ] 101 | }, 102 | { 103 | "cell_type": "code", 104 | "execution_count": 7, 105 | "metadata": { 106 | "collapsed": false 107 | }, 108 | "outputs": [ 109 | { 110 | "data": { 111 | "text/plain": [ 112 | "'olek'" 113 | ] 114 | }, 115 | "execution_count": 7, 116 | "metadata": {}, 117 | "output_type": "execute_result" 118 | } 119 | ], 120 | "source": [ 121 | "j.nazwa" 122 | ] 123 | }, 124 | { 125 | "cell_type": "code", 126 | "execution_count": 8, 127 | "metadata": { 128 | "collapsed": false 129 | }, 130 | "outputs": [ 131 | { 132 | "data": { 133 | "text/plain": [ 134 | "'jamnik'" 135 | ] 136 | }, 137 | "execution_count": 8, 138 | "metadata": {}, 139 | "output_type": "execute_result" 140 | } 141 | ], 142 | "source": [ 143 | "j.rasa" 144 | ] 145 | }, 146 | { 147 | "cell_type": "code", 148 | "execution_count": 9, 149 | "metadata": { 150 | "collapsed": true 151 | }, 152 | "outputs": [], 153 | "source": [ 154 | "for i in range(10):\n", 155 | " j.jedz()" 156 | ] 157 | }, 158 | { 159 | "cell_type": "code", 160 | "execution_count": 10, 161 | "metadata": { 162 | "collapsed": true 163 | }, 164 | "outputs": [], 165 | "source": [ 166 | "for i in range(200):\n", 167 | " j.gloduj()" 168 | ] 169 | }, 170 | { 171 | "cell_type": "code", 172 | "execution_count": 11, 173 | "metadata": { 174 | "collapsed": false 175 | }, 176 | "outputs": [ 177 | { 178 | "data": { 179 | "text/plain": [ 180 | "True" 181 | ] 182 | }, 183 | "execution_count": 11, 184 | "metadata": {}, 185 | "output_type": "execute_result" 186 | } 187 | ], 188 | "source": [ 189 | "j.czy_zdech()" 190 | ] 191 | }, 192 | { 193 | "cell_type": "code", 194 | "execution_count": 16, 195 | "metadata": { 196 | "collapsed": true 197 | }, 198 | "outputs": [], 199 | "source": [ 200 | "class Buldog(Pies):\n", 201 | " rasa = 'buldog'\n", 202 | " kolor = 'ciapaty'\n", 203 | " \n", 204 | " def szczekaj(self):\n", 205 | " if self.pojemnosc > 0:\n", 206 | " return 'wooow'\n", 207 | " else:\n", 208 | " return 'nie woow bo nie zyje'\n", 209 | " \n", 210 | " def jedz(self):\n", 211 | " super(Buldog, self).jedz()\n", 212 | " self.rzeczy.append('posilek')" 213 | ] 214 | }, 215 | { 216 | "cell_type": "code", 217 | "execution_count": 17, 218 | "metadata": { 219 | "collapsed": true 220 | }, 221 | "outputs": [], 222 | "source": [ 223 | "b = Buldog('patrycja')" 224 | ] 225 | }, 226 | { 227 | "cell_type": "code", 228 | "execution_count": 18, 229 | "metadata": { 230 | "collapsed": false 231 | }, 232 | "outputs": [ 233 | { 234 | "data": { 235 | "text/plain": [ 236 | "'wooow'" 237 | ] 238 | }, 239 | "execution_count": 18, 240 | "metadata": {}, 241 | "output_type": "execute_result" 242 | } 243 | ], 244 | "source": [ 245 | "b.szczekaj()" 246 | ] 247 | }, 248 | { 249 | "cell_type": "code", 250 | "execution_count": 19, 251 | "metadata": { 252 | "collapsed": false 253 | }, 254 | "outputs": [], 255 | "source": [ 256 | "b.jedz()" 257 | ] 258 | }, 259 | { 260 | "cell_type": "code", 261 | "execution_count": 20, 262 | "metadata": { 263 | "collapsed": false 264 | }, 265 | "outputs": [ 266 | { 267 | "data": { 268 | "text/plain": [ 269 | "101" 270 | ] 271 | }, 272 | "execution_count": 20, 273 | "metadata": {}, 274 | "output_type": "execute_result" 275 | } 276 | ], 277 | "source": [ 278 | "b.pojemnosc" 279 | ] 280 | }, 281 | { 282 | "cell_type": "code", 283 | "execution_count": 21, 284 | "metadata": { 285 | "collapsed": true 286 | }, 287 | "outputs": [], 288 | "source": [ 289 | "for i in range(200):\n", 290 | " b.gloduj()" 291 | ] 292 | }, 293 | { 294 | "cell_type": "code", 295 | "execution_count": 22, 296 | "metadata": { 297 | "collapsed": false 298 | }, 299 | "outputs": [ 300 | { 301 | "data": { 302 | "text/plain": [ 303 | "-99" 304 | ] 305 | }, 306 | "execution_count": 22, 307 | "metadata": {}, 308 | "output_type": "execute_result" 309 | } 310 | ], 311 | "source": [ 312 | "b.pojemnosc" 313 | ] 314 | }, 315 | { 316 | "cell_type": "code", 317 | "execution_count": 23, 318 | "metadata": { 319 | "collapsed": false 320 | }, 321 | "outputs": [ 322 | { 323 | "data": { 324 | "text/plain": [ 325 | "'nie woow bo nie zyje'" 326 | ] 327 | }, 328 | "execution_count": 23, 329 | "metadata": {}, 330 | "output_type": "execute_result" 331 | } 332 | ], 333 | "source": [ 334 | "b.szczekaj()" 335 | ] 336 | }, 337 | { 338 | "cell_type": "code", 339 | "execution_count": 24, 340 | "metadata": { 341 | "collapsed": false 342 | }, 343 | "outputs": [ 344 | { 345 | "data": { 346 | "text/plain": [ 347 | "['posilek']" 348 | ] 349 | }, 350 | "execution_count": 24, 351 | "metadata": {}, 352 | "output_type": "execute_result" 353 | } 354 | ], 355 | "source": [ 356 | "b.rzeczy" 357 | ] 358 | }, 359 | { 360 | "cell_type": "code", 361 | "execution_count": 25, 362 | "metadata": { 363 | "collapsed": false 364 | }, 365 | "outputs": [ 366 | { 367 | "data": { 368 | "text/plain": [ 369 | "['posilek']" 370 | ] 371 | }, 372 | "execution_count": 25, 373 | "metadata": {}, 374 | "output_type": "execute_result" 375 | } 376 | ], 377 | "source": [ 378 | "j.rzeczy" 379 | ] 380 | }, 381 | { 382 | "cell_type": "code", 383 | "execution_count": 28, 384 | "metadata": { 385 | "collapsed": false 386 | }, 387 | "outputs": [ 388 | { 389 | "data": { 390 | "text/plain": [ 391 | "['posilek', 'chipsy', 'kluczyki']" 392 | ] 393 | }, 394 | "execution_count": 28, 395 | "metadata": {}, 396 | "output_type": "execute_result" 397 | } 398 | ], 399 | "source": [ 400 | "Buldog.rzeczy" 401 | ] 402 | }, 403 | { 404 | "cell_type": "code", 405 | "execution_count": 27, 406 | "metadata": { 407 | "collapsed": true 408 | }, 409 | "outputs": [], 410 | "source": [ 411 | "Buldog.rzeczy += ['chipsy', 'kluczyki']" 412 | ] 413 | }, 414 | { 415 | "cell_type": "code", 416 | "execution_count": 29, 417 | "metadata": { 418 | "collapsed": false 419 | }, 420 | "outputs": [ 421 | { 422 | "data": { 423 | "text/plain": [ 424 | "['posilek', 'chipsy', 'kluczyki']" 425 | ] 426 | }, 427 | "execution_count": 29, 428 | "metadata": {}, 429 | "output_type": "execute_result" 430 | } 431 | ], 432 | "source": [ 433 | "Pies.rzeczy" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": 30, 439 | "metadata": { 440 | "collapsed": true 441 | }, 442 | "outputs": [], 443 | "source": [ 444 | "b.rzeczy = []" 445 | ] 446 | }, 447 | { 448 | "cell_type": "code", 449 | "execution_count": 31, 450 | "metadata": { 451 | "collapsed": false 452 | }, 453 | "outputs": [ 454 | { 455 | "data": { 456 | "text/plain": [ 457 | "[]" 458 | ] 459 | }, 460 | "execution_count": 31, 461 | "metadata": {}, 462 | "output_type": "execute_result" 463 | } 464 | ], 465 | "source": [ 466 | "b.rzeczy" 467 | ] 468 | }, 469 | { 470 | "cell_type": "code", 471 | "execution_count": 32, 472 | "metadata": { 473 | "collapsed": false 474 | }, 475 | "outputs": [ 476 | { 477 | "data": { 478 | "text/plain": [ 479 | "['posilek', 'chipsy', 'kluczyki']" 480 | ] 481 | }, 482 | "execution_count": 32, 483 | "metadata": {}, 484 | "output_type": "execute_result" 485 | } 486 | ], 487 | "source": [ 488 | "Pies.rzeczy" 489 | ] 490 | }, 491 | { 492 | "cell_type": "code", 493 | "execution_count": 33, 494 | "metadata": { 495 | "collapsed": false 496 | }, 497 | "outputs": [ 498 | { 499 | "data": { 500 | "text/plain": [ 501 | "'-'" 502 | ] 503 | }, 504 | "execution_count": 33, 505 | "metadata": {}, 506 | "output_type": "execute_result" 507 | } 508 | ], 509 | "source": [ 510 | "Pies.rasa" 511 | ] 512 | }, 513 | { 514 | "cell_type": "code", 515 | "execution_count": 34, 516 | "metadata": { 517 | "collapsed": false 518 | }, 519 | "outputs": [ 520 | { 521 | "data": { 522 | "text/plain": [ 523 | "'jamnik'" 524 | ] 525 | }, 526 | "execution_count": 34, 527 | "metadata": {}, 528 | "output_type": "execute_result" 529 | } 530 | ], 531 | "source": [ 532 | "Jamnik.rasa" 533 | ] 534 | }, 535 | { 536 | "cell_type": "code", 537 | "execution_count": 35, 538 | "metadata": { 539 | "collapsed": false 540 | }, 541 | "outputs": [ 542 | { 543 | "data": { 544 | "text/plain": [ 545 | "'buldog'" 546 | ] 547 | }, 548 | "execution_count": 35, 549 | "metadata": {}, 550 | "output_type": "execute_result" 551 | } 552 | ], 553 | "source": [ 554 | "Buldog.rasa" 555 | ] 556 | }, 557 | { 558 | "cell_type": "code", 559 | "execution_count": null, 560 | "metadata": { 561 | "collapsed": true 562 | }, 563 | "outputs": [], 564 | "source": [] 565 | } 566 | ], 567 | "metadata": { 568 | "kernelspec": { 569 | "display_name": "Python 2", 570 | "language": "python", 571 | "name": "python2" 572 | }, 573 | "language_info": { 574 | "codemirror_mode": { 575 | "name": "ipython", 576 | "version": 2 577 | }, 578 | "file_extension": ".py", 579 | "mimetype": "text/x-python", 580 | "name": "python", 581 | "nbconvert_exporter": "python", 582 | "pygments_lexer": "ipython2", 583 | "version": "2.7.6" 584 | } 585 | }, 586 | "nbformat": 4, 587 | "nbformat_minor": 2 588 | } 589 | -------------------------------------------------------------------------------- /modules/reader.py: -------------------------------------------------------------------------------- 1 | import csv 2 | import json 3 | 4 | 5 | def get_from_csv(csvfile): 6 | weather_station = csv.reader(csvfile, delimiter=';', quotechar='"') 7 | # skip header 8 | next(weather_station, None) 9 | return weather_station 10 | 11 | 12 | def get_from_json(jsonfile): 13 | return json.loads(jsonfile.read())['data'] 14 | -------------------------------------------------------------------------------- /modules/test_fib.py: -------------------------------------------------------------------------------- 1 | from modules.fib import fib 2 | 3 | def test_fib_zero(): 4 | assert fib(0) == 0 5 | 6 | def test_fib_one(): 7 | assert fib(1) == 1 8 | 9 | def test_fib_three(): 10 | assert fib(3) == 2 11 | assert fib(3) == fib(1) + fib(2) 12 | assert fib(3) == fib(1) + fib(1) + fib(0) 13 | -------------------------------------------------------------------------------- /modules/test_fiz.py: -------------------------------------------------------------------------------- 1 | from fiz import fizzbuzz, fizzbuzz_single 2 | 3 | def test_fizz_1(): 4 | assert fizzbuzz(1,)=="1" 5 | 6 | def test_fizz_2(): 7 | assert fizzbuzz(2)=="1\n2" 8 | 9 | def test_fizz_3_addition(): 10 | assert fizzbuzz(3,"Tom","Bob")=="1\n2\nTom" 11 | 12 | def test_fizz_3(): 13 | assert fizzbuzz(3)=="1\n2\nFizz" 14 | 15 | def test_fizz_5_addition(): 16 | assert fizzbuzz(5)=="1\n2\nFizz\n4\nBuzz" 17 | 18 | def test_fizz_5(): 19 | assert fizzbuzz(5,"Tom","Bob")=="1\n2\nTom\n4\nBob" 20 | 21 | def test_fizz_single_150(): 22 | assert fizzbuzz_single(150, 'Fizz', 'Buzz') == 'FizzBuzz' 23 | 24 | 25 | -------------------------------------------------------------------------------- /modules/utils.py: -------------------------------------------------------------------------------- 1 | from enum_csv import CSV_TEMP, CSV_YEAR, CSV_DAY, CSV_MONTH, CSV_HOUR, CSV_MINUTE 2 | from datetime import datetime 3 | 4 | def dp(t, h): 5 | """ 6 | calculates the dewpoint via the formula from weatherwise.org 7 | 8 | :type t: float 9 | :param t: temperature 10 | :param h: humidity 11 | :return: dew point 12 | """ 13 | x = 1 - 0.01 * h; 14 | 15 | dew_point = (14.55 + 0.114 * t) * x 16 | dew_point += ((2.5 + 0.007 * t) * x) ** 3 17 | dew_point += (15.9 + 0.117 * t) * x ** 14 18 | dew_point = t - dew_point 19 | 20 | return dew_point 21 | 22 | # Tutaj wykorzystuje dynamicznosc pythona oraz referencje 23 | # nie zwracam nic, modyfikuje obiekt znajdujacy sie w argumencie 24 | # zaleta/wada - trudny temat :) napewno wygodne 25 | def modify_stats(stats, data_row): 26 | temp = data_row[CSV_TEMP] # wyciagniecie wartosci jako zmienna lokalna 27 | if stats['abs_max'] is None: 28 | stats['abs_max'] = temp 29 | stats['abs_min'] = temp 30 | stats['abs_avg'] = float(temp) 31 | else: 32 | # nie mialem modyfikowac kodu ale tutaj plakalem jak przepisywalem 33 | stats['abs_max'] = max(temp, stats['abs_max']) 34 | stats['abs_min'] = min(temp, stats['abs_min']) 35 | stats['abs_avg'] = (float(temp) + stats['abs_avg']) / 2.0 36 | 37 | 38 | def get_day(data_row): 39 | return datetime( 40 | int(data_row[CSV_YEAR]), int(data_row[CSV_MONTH]), int(data_row[CSV_DAY]), 41 | int(data_row[CSV_HOUR]), int(data_row[CSV_MINUTE])) 42 | 43 | 44 | -------------------------------------------------------------------------------- /test: -------------------------------------------------------------------------------- 1 | falskfjskl 2 | --------------------------------------------------------------------------------