oemof / oemof-tabular Goto Github PK
View Code? Open in Web Editor NEWLoad oemof energy systems from tabular data sources.
Home Page: https://oemof-tabular.readthedocs.io/
License: BSD 3-Clause "New" or "Revised" License
Load oemof energy systems from tabular data sources.
Home Page: https://oemof-tabular.readthedocs.io/
License: BSD 3-Clause "New" or "Revised" License
While GitHub actions aren't perfect they provide a way around Travis' slightly restrictive policy regarding free macOS builds and we can use it for Windows builds, too, which means we can get get rid of AppVeyor.
To better separate code and configuration, let's move the above mentioned dictionaries in tabular.facades to a separate place, e.g.:
config/
|-------- carrier_color_map.yaml
|-------- tech_color_map.yaml
And load them in src/oemof/tabular/init.py
Then, adapt the imports in any part of the code or the docs from from oemof.tabular.facades import TECH_COLOR_MAP
to from oemof.tabular import TECH_COLOR_MAP
.
I've been installing the latest Version of oemof.tabular successfully on a Windows 10 machine and Linux Mint machine.
Running test_constraints.py FutureWarning occours in @jnnr
Node
s is deprecated in favour of explicitly adding Node
s to an EnergySystem
via EnergySystem.add
. This feature, i.e. the Node.registry
attribute and functionality pertaining to it, will be removed in future versions.Also see attached logs from running tests:
linux.log
windows.log
Installing tabular on a Windows 10 and a Linux machine leads to some pathing (as I assume)
In :
(PosixPath returns None on Windows, therfore the PytestWarning is missing on the Windows machine and therefore does not violate Typeannotation)
Also see attached logs from running tests:
linux.log
windows.log
When reading datapackages with some table cells empty, these attributes will be set None. This causes trouble, e.g. when storage_capacity is None, which is passed as a minimum value for investment. The error will occur much later in the chain, when building the model: AttributeError: 'NoneType' object has no attribute 'is_variable_type'
.
Default values for attributes are defined via kwargs.get("attribute", <default>)
. However, with None passed, it will not be replaced by the default.
Wanted behaviour (in my view):
After installing and testing tabular i receive a DeprecationWarning:
Refactor building.py because it is hard to grasp.
Not used
Most of the functions got introduced in b83cd34 and have not been refactored much since then.
I've been installing the latest Version of oemof.tabular successfully on a Windows 10 machine and Linux Mint machine.
SuspiciousUsageWarning occours in:
Also see attached logs from running tests:
linux.log
windows.log
Hey I think there might still be some problems with the examples (not correct attribute names etc.). We should carefully check the examples and compare with the classes and possible attributes etc. before the release
Hi everybody,
this ist the first time I take a look at oemof.tabular. Thanks for everything, such a great project!
I tried to follow the steps in the tutorial part of the documentation on how to use the datapackage reader (https://oemof-tabular.readthedocs.io/en/latest/tutorials/datapackage-reader.html).
Doing so produces the following error:
Traceback (most recent call last):
File "C:\Users\m.haller\AppData\Local\Continuum\miniconda3\envs\env_oemof_tabular\lib\site-packages\oemof\tabular\datapackage\reading.py", line 294, in deserialize_energy_system
facade_data = r.read(keyed=True, relations=True)
File "C:\Users\m.haller\AppData\Local\Continuum\miniconda3\envs\env_oemof_tabular\lib\site-packages\datapackage\resource.py", line 377, in read
foreign_keys_values=foreign_keys_values, **options)
File "C:\Users\m.haller\AppData\Local\Continuum\miniconda3\envs\env_oemof_tabular\lib\site-packages\tableschema\table.py", line 364, in read
for count, row in enumerate(rows, start=1):
File "C:\Users\m.haller\AppData\Local\Continuum\miniconda3\envs\env_oemof_tabular\lib\site-packages\tableschema\table.py", line 290, in iter
error_data=local_keyed_values)
File "C:\Users\m.haller\AppData\Local\Continuum\miniconda3\envs\env_oemof_tabular\lib\site-packages\tableschema\table.py", line 202, in exc_handler
raise exc
tableschema.exceptions.UnresolvedFKError: Foreign key "['profile']" violation in row "5": ('wind-profile',) not found in source_profile
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\m.haller\AppData\Local\Continuum\miniconda3\envs\env_oemof_tabular\lib\site-packages\IPython\core\interactiveshell.py", line 3319, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-b2a34a931d93>", line 1, in <module>
runfile('C:/Users/m.haller/Documents/11 Eigene Projekte/OpenSourceModeling/OpenSourceModeling/oemof/oemof_tabular_test.py', wdir='C:/Users/m.haller/Documents/11 Eigene Projekte/OpenSourceModeling/OpenSourceModeling/oemof')
File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.2\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.2\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/m.haller/Documents/11 Eigene Projekte/OpenSourceModeling/OpenSourceModeling/oemof/oemof_tabular_test.py", line 43, in <module>
typemap=typemap,
File "C:\Users\m.haller\AppData\Local\Continuum\miniconda3\envs\env_oemof_tabular\lib\site-packages\oemof\tabular\datapackage\reading.py", line 301, in deserialize_energy_system
"Exception was: {}").format(r.name, e))
datapackage.exceptions.LoadError: Could not read data for resource with name `source`. Maybe wrong foreign keys?
Exception was: Foreign key "['profile']" violation in row "5": ('wind-profile',) not found in source_profile
I am using miniconda and Python 3.7.5 on Windows 10. But the same error message also appears on https://oemof-tabular.readthedocs.io/en/latest/tutorials/datapackage-reader.html, so I think it is independent of the environment I am using. Similar errors occur with the other two example packages provided (dispatch
and foreignkeys
).
In oemof.solph, there is the package "experimental" that contains components that are new. Some similar place for tabular facades would be helpful.
I think as in the pvlib this would make sense
This is due to a problem here https://github.com/oemof/oemof/pull/548
same as #13
Dear developer team,
after the successful installation of oemof.solph a while ago, I tried to installed oemof.tabular, which would fit my needs perfectly well. Unfortunately, it does not successfully install on my diverse Macs (iMac27, 4 GHz Quad-Core 7, MacBookPro 15", 2,8 GHz Quad-Core 7 and MacBookPro 16", Apple M1 Max). Es ist jeweils Python3.10 installiert.
Folgende Fehlermeldungen werden beim Abbruch der Installation ausgegeben:
- MacBookPro (Core 7):
Nach dem ausgeführten Kommando: Collecting bcrypt>=3.1.3 (from paramiko->oemof.tabular)
Kommt die Fehlermeldung:
‚Command „python setup.py egg_info“ failed with error code 1 in
/private/var/folders/7v/dymmw6f95vg0t_wzjcrpgknc0000/T/pip-install-0uqjk1j0/bcrypt/
Davor gibt es die Message:
File „…./site-packages/setuptools/importlib.py“ line 31, in if isinstance(ob, import lib_metadata.MetadataPathFinder)
AttributeError: module ‚import lib_metadata‘ has not attribute ‚MetadataPathFinder‘
- iMac 27:
Fast an der gleichen Stelle:
Nach dem ausgeführten Kommando: ‚Collecting pynacl>=1.0.1 (from paramiko->oemof.tabular)
‚Command „python setup.py egg_info“ failed with error code 1 in
/private/var/folders/t_/8gskjd5xx46xc2vd74lj_c2fc0000gq/T/pip-install-fb9tcwxx/pynacl/
Davor gibt es die Message:
File „…./site-packages/setuptools/importlib.py“ line 31, in if isinstance(ob, import lib_metadata.MetadataPathFinder)
AttributeError: module ‚import lib_metadata‘ has not attribute ‚MetadataPathFinder‘
Das scheint der gleiche Fehler zu sein.
- MacBookPro 16“ (M1 Max):
Hier läuft die Installation sehr lange und gibt eine Unmenge Meldungen aus, bis das System versucht numpy zu installieren. Nachdem er fast fertig ist, steigt der Mac mit ‚ERROR: Command errored out with exit status 1: …
ERROR: Command errored out with exit status 1: /Users/olavhohmeyer/opt/anaconda3/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/24/63p96bfn3qn4k6nm7zhbj81w0000gn/T/pip-install-5hti6gps/numpy_830008914e754225aaf79cf365e77209/setup.py'"'"'; file='"'"'/private/var/folders/24/63p96bfn3qn4k6nm7zhbj81w0000gn/T/pip-install-5hti6gps/numpy_830008914e754225aaf79cf365e77209/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(file) if os.path.exists(file) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/var/folders/24/63p96bfn3qn4k6nm7zhbj81w0000gn/T/pip-record-zfqeughl/install-record.txt --single-version-externally-managed --compile --install-headers /Users/olavhohmeyer/opt/anaconda3/include/python3.9/numpy Check the logs for full command output.
Was muss ich tun oder was müsst Ihr tun, damit die Installation funktioniert?
Für eine schnelle Antwort wäre ich Euch dankbar.
Olav
Not all facades have input_parameters and output_parameters. These attributes should be checked for consistency. Components with 2 outputs, like backpressure and extraction turbine, need a good naming decision, as well.
In short: GenericStorage expects a single input and a single output. If you add inputs or outputs by adding subnodes you may throw out the original input flow from the constraints.
Problem
By adding the subnode "-inflow"
oemof-tabular/src/oemof/tabular/facades.py
Line 248 in ab58d8c
You can see this by either looking into the LP-file or calling m.pprint()
.
This happens silently in the background, which can be a problem. For example, if one wants to model a Reservoir with a pump.
Also, for other types of facades this is problematic. E.g. implementing a battery electric vehicle, which can be thought of as a storage with an additional Sink describing the drive power of the vehicles. This is where I originally stumbled over the issue.
Have a look here for an (not yet finished) Bev facade and the script to test it.
How does it happen?
The Reservoir facade inherits from GenericStorage. In line
a dictionary describing the inputs is created, which only keeps the first entry of a list. Some lines below, when the constraints are created, this dictionary is used
This is how the Flow gets kicked out of the equation. The reason is that solph's GenericStorage was not designed to have more than one input and output, which happens once you have subnodes. As a consequences, the behaviour of the flows in Reservoir works only by conindidence. If the flows would appear in a different order in the list, the subnode-flow would be out of the storage balance constraints.
Do you have any ideas what I could do without having to roll up everything in GenericStorage?
still active:
removed in #59:
to be re-introduced:
[ ] coveralls: test coverage
[ ] codacy: security issues, code coverage, code duplication, code complexity
[ ] requires: monitors dependencies
(please feel free to edit this list if you disagree)
The datapackages are not valid. You will see validation errors when trying to validate.
From examples/datapackages run:
from datapackage import validate
datapackage.validate("dispatch/datapackage.json")
Returns:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "envs/oemof-B3/lib/python3.8/site-packages/datapackage/validate.py", line 16, in validate
Package(descriptor, strict=True)
File "envs/oemof-B3/lib/python3.8/site-packages/datapackage/package.py", line 105, in __init__
self.__build()
File "envs/oemof-B3/lib/python3.8/site-packages/datapackage/package.py", line 300, in __build
raise exception
File "envs/oemof-B3/lib/python3.8/site-packages/datapackage/package.py", line 295, in __build
self.__profile.validate(self.__current_descriptor)
File "envs/oemof-B3/lib/python3.8/site-packages/datapackage/profile.py", line 67, in validate
raise exceptions.ValidationError(message, errors=errors)
tableschema.exceptions.ValidationError: There are 2 validation errors (see exception.errors)
With a fresh install in python 3.6.8 with
pip install oemof.tabular
The following error occurs:
ERROR: botocore 1.13.25 has requirement python-dateutil<2.8.1,>=2.1; python_version >= "2.7", but you'll have python-dateutil 2.8.1 which is incompatible.
ERROR: oemof 0.3.1 has requirement numpy<1.17,>=1.7.0, but you'll have numpy 1.17.4 which is incompatible.
ERROR: oemof 0.3.1 has requirement pandas<0.25,>=0.18.0, but you'll have pandas 0.25.3 which is incompatible.
When inferring metadata on Windows, we (or @juliusmeier, to be precise) could not successfully load the energy system.
How to replicate:
Open a terminal and change the current directory to src/oemof/tabular/examples/datapackages/dispatch
. Then, run python scripts/infer.py
. This should reproduce the existing data/datapackage.json
.
Hypothesis:
This arises due to the path separator in "path" entries in datapackage.json. Path separators of datapackage.json inferred on Windows look like this, e.g.:
"path": "data/elements\electricity-transmission.csv"
Observations:
If we replace the \ with /, the datapackage can be run without a problem.
Questions
Have other observed this, too?
Can we fix this by adapting tabular.datapackage.building.infer_metadata() such that all paths are separated with "/"?
Moved from #44.
check and unify:
carrier
and tech
.decide
type
because it is defined in the class FacadeIt seems that the attribute input_parameters in facades.Reservoir is not used. If I am not mistaken, it could be removed.
We running the notebooks for the docs, the data path is not found. The tutorial I am referring to is the 'Create energy systems from spreadsheets'.
Hey I would like to release 0.1.0 in the next 1-2 month. That version we can also use for MODEX I assume. I suggest collecting some to dos and then having pull request for working on it:
One we have that I suggest writing a few pages and adding this to a open source software journal.
Do you agree doing this release / publication within the MODEX context?
Still an issue with foreign keys inside json objects...can this be resolved?
We aim to refactor postprocessing and include developments from rl-institut/oemoflex#82.
Currently, postprocessed data looks like this:
bus results
timeindex,coal,lignite,wind,el-storage1,el-storage2,import,demand0
2011-01-01 00:00:00,0.0,0.0,7.3766,-2.8633994,0.0,-0.78490446,3.72829618
Flow in/out of the bus is indicated by the sign
storage_level
timeindex,el-storage1,el-storage2
2011-01-01 00:00:00,9.9102842,0.0
capacities
from,to,type,tech,carrier,value
el-storage1,bus0,capacity,battery,lithium,10
el-storage2,bus0,capacity,battery,lithium,20
oemoflex' results are much more comprehensive, but some ideas are worth preserving.
After updating to oemof.tabular 0.0.3 I can run Maruf's energy model base_NDE_SDE.py up to the point it is supposed to write the results. At that point the program stops with the following error message:
File "Users/ .../base_NDE_SDE.py, line 514, in
m.resutls = m.results( )
File "Users/ ../oemof/solph/models.py, line 179, in results
return processing.resluts(self)
File "Users/ ../oemof/solph/processing.py, line 149, in results
str(e) + msg.format(k[0].label, k[1].label)
AttributeError: 'NoneType' object has no attribute 'label'
The model is run with Maruf's original data set and code (the code in this part of the program calling 'results' is quite similar to the example given for oemof.tabular in the documentation).
Do you have any idea, why this Error is occurring?
Any help would be greatly appreciated.
Olav
p.s.: My configuration is the same as reported on the last issue, we successfully solved.
This will allow tracking compatibility between data and code.
Include something like this in infer_metadata
:
p.descriptor["tabular-version"] = oemof.tabular.__version__
And check the version against a list of supported versions when calling deserialize_energysystem
.
There are errors showing math in the facades' docstrings: https://oemof-tabular.readthedocs.io/en/latest/reference/oemof.tabular.html#oemof.tabular.facades.Dispatchable
Can we already do this?
While Excess inherits from Sink (see class excess in facades.py), Shortage inherits from Dispatchable (see class shortage in facades.py). This leads to different operation of these components, which does not correspond to the expected behavior.
An open question is with which component I can limit export if no nominal value can be set in the excess class.
The rest of the release process is described in https://github.com/oemof/oemof/wiki/How-to-release
It would be nice if datapackages could be uploaded to the open energy database without further steps necessary.
Why would this help? It helps by
What functionality is missing in oemof.tabular to make it happen?
What functionality is missing in the oe-family?
First, we want to get an overview and extend the bullet lists above.
The idea would be that existing packages should be calculated like
ota --input-dir=data --output-dir=oemof_tabular_results --solver=cbc
Options should be for now:
--input-dir
--solver
--result-dir
--debug / or log (?)
...
Maybe more, but for now it will not be too complicated with nested command structures I guess.
For the input-dir every data directory that contains datapackage.json
should be used, so that multiple packages at the sametime are caculated.
When I try to run Maruf's energy system model (version 'base-NDE-SDE.py) based on oemof.tabular the import of oemof.tabular.facades stops when the program tries to import 'Edge' from oemof.network. Looks like there is some problem in oemof.network???
This is the code of the program (base-NDE-SDE.py), where the import gets stuck:
#Base Scenario Source Code
import os
import pandas as pd
import oemof.tabular.facades as fc
This is the output concerning the error message (cannot import name 'Edge'):
(test-project) olavhohmeyer@Olavs-MacBookPro-15-Zoll-16014 scenarios % python3 base-NDE-SDE.py
Traceback (most recent call last):
File "base-NDE-SDE.py", line 6, in
import oemof.tabular.facades as fc
File "/Users/olavhohmeyer/energy_models/oemof_tabular/test_tabular/test-project/lib/python3.6/site-packages/oemof/tabular/facades.py", line 23, in
from oemof.energy_system import EnergySystem
File "/Users/olavhohmeyer/energy_models/oemof_tabular/test_tabular/test-project/lib/python3.6/site-packages/oemof/energy_system.py", line 20, in
from oemof.groupings import DEFAULT as BY_UID, Grouping, Nodes
File "/Users/olavhohmeyer/energy_models/oemof_tabular/test_tabular/test-project/lib/python3.6/site-packages/oemof/groupings.py", line 16, in
from oemof.network import Edge
ImportError: cannot import name 'Edge'
(test-project) olavhohmeyer@Olavs-MacBookPro-15-Zoll-16014 scenarios %
How do I get around this problem?
Olav
This code is to go to oemof tabular.
However, as we do not have any scenario toml files provided in oemof tabular for scenario definition we might either provide an empty one or/and allow to specify a folder which is then used as scenario folder.
When importing tabular.datapackage, tabular.datapackage.aggregation is imported as well because of datapackage/init.py. Therefore, an ImportError appears even if aggregation is not used.
The electrical capacity, or just capacity, of the ExtractionTurbine is not reduced when more heat is produced, but stays the same. Instead of an operation range as sketched in a), the result is an operation range like in b).
The reason is that the capacity is set on the electricity output flow, other that in the oemof.solph example, where the capacity is set onto the fuel flow. In the latter case, the constraint follows the iso-fuel lines as shown in the picture a).
I would call this a bug in oemof.tabular because the operation range in a) is what most modelers expect when thinking about an extraction turbine.
Our current workaround is this: We redefine the ExtractionTurbine facade class and set a fuel_capacity on the fuel input, which we get from the capacity by multiplying with the condensing efficiency (modex-flexmex/oemof-flexmex@e653e1b#diff-60ad91b35a63351b018098acda541bc53658590d1cbc7a9d518db584a343295bR644). This only works for the non-investment case at the moment.
Feedback on how to solve this more elegantly and how to proceed with this in oemof.tabular is welcome!
These facades are not tested so far but these are mostly aliases of converters anyways. Not sure if constraint tests are neccesary (IMHO @nailend)
Should decide for each one wether to add tests or discontinue it.
Can be solved by sorting the list of files in building.infer_metadata. Or even for all functions in building.
This is a feature request for custom foreign keys, which allows a user to simply add custom components with related references in datapackages.
Therefore, function infer_metadata
in module datapackage.building
has to be adapted.
Proposed solution is to load default foreign_keys and references from JSON file and allow users to use different (custom) file via environment variable.
It seems that find_namespace_packages
creates problems with various build services. Most notably, AppVeyor, Read the Docs and Travis CI all raise ImportError
s. I think the reason is that find_namespace_packages
got first introduced in setuptools 40.1.0
and the services use an earlier version, so I have to figure out a way of forcing a minimal setuptools
version onto the package building process.
It also looks like the docs
environment still uses Python 2.7, so I have to figure out a way of finally changing that too.
oemof.tabular has a large dependency tree. pipdeptree -p oemof.tabular
shows the dependency tree. I was wondering why scikit-learn
is part of the installation, for example. This causes extra maintenance work.
Should check which packages are actually useful and drop those from the requirements that are obsolete.
Requirements that are necessary for only part of the functionality (e.g. plotting, geometry) could move to extras_require. Those modules can try to import and raise an ImportError when a module is missing.
Update: I got an overview:
Not used
Used only in one module
A clean install with pip install 'git+https://[email protected]/oemof/oemof-tabular.git'
for Python 3.6.7 yields for the tests the errors and warnings below.
(venv) clemens@euf-cwi:~/znes_clemens/repositories/oemof-tabular$ tox
GLOB sdist-make: /home/clemens/znes_clemens/repositories/oemof-tabular/setup.py
clean create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/clean
clean installdeps: coverage
clean installed: coverage==4.5.3
clean run-test-pre: PYTHONHASHSEED='1653473122'
clean run-test: commands[0] | coverage erase
check create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/check
check installdeps: docutils, check-manifest, flake8, readme-renderer, pygments, isort
check installed: bleach==3.1.0,check-manifest==0.38,docutils==0.14,entrypoints==0.3,flake8==3.7.7,isort==4.3.18,mccabe==0.6.1,pycodestyle==2.5.0,pyflakes==2.1.1,Pygments==2.3.1,readme-renderer==24.0,six==1.12.0,toml==0.10.0,webencodings==0.5.1
check run-test-pre: PYTHONHASHSEED='1653473122'
check run-test: commands[0] | python setup.py check --strict --metadata --restructuredtext
/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/check/lib/python3.6/site-packages/setuptools/dist.py:472: UserWarning: Normalizing '0.0.1dev' to '0.0.1.dev0'
normalized_version,
running check
warning: Check: This command has been deprecated. Use `twine check` instead: https://packaging.python.org/guides/making-a-pypi-friendly-readme#validating-restructuredtext-markup
The project's long description is valid RST.
check run-test: commands[1] | check-manifest /home/clemens/znes_clemens/repositories/oemof-tabular
lists of files in version control and sdist do not match!
missing from sdist:
data
data/data.xls
suggested MANIFEST.in rules:
recursive-include data *.xls
ERROR: InvocationError for command /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/check/bin/check-manifest . (exited with code 1)
docs create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs
docs installdeps: -r/home/clemens/znes_clemens/repositories/oemof-tabular/docs/requirements.txt
docs inst: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/.tmp/package/1/oemof.tabular-0.0.1.dev0.zip
docs installed: alabaster==0.7.12,appdirs==1.4.3,asn1crypto==0.24.0,attrs==19.1.0,Babel==2.6.0,backcall==0.1.0,bcrypt==3.1.6,cchardet==2.1.4,certifi==2019.3.9,cffi==1.12.3,chardet==3.0.4,Click==7.0,cryptography==2.6.1,cycler==0.10.0,datapackage==1.6.0,decorator==4.4.0,dill==0.2.9,docutils==0.14,et-xmlfile==1.0.1,geojson==2.4.1,idna==2.8,ijson==2.3,imagesize==1.1.0,ipython==7.5.0,ipython-genutils==0.2.0,isodate==0.6.0,jdcal==1.4.1,jedi==0.13.3,Jinja2==2.10.1,jsonlines==1.2.0,jsonpointer==2.0,jsonschema==3.0.1,jupyter-core==4.4.0,kiwisolver==1.1.0,linear-tsv==1.1.0,MarkupSafe==1.1.1,matplotlib==3.0.3,nbformat==4.4.0,networkx==2.2,nose==1.3.7,numpy==1.16.3,oemof==0.2.4.dev0,oemof.tabular==0.0.1.dev0,openpyxl==2.4.11,packaging==19.0,pandas==0.24.2,paramiko==2.4.2,parso==0.4.0,pexpect==4.7.0,pickleshare==0.7.5,plotly==3.9.0,ply==3.11,prompt-toolkit==2.0.9,ptyprocess==0.6.0,pyasn1==0.4.5,pycparser==2.19,Pygments==2.3.1,PyNaCl==1.3.0,Pyomo==5.6.2,pyparsing==2.4.0,pyproj==2.1.3,pyrsistent==0.15.1,pyshp==2.1.0,python-dateutil==2.8.0,pytz==2019.1,PyUtilib==5.7.0,requests==2.21.0,retrying==1.3.3,rfc3986==1.3.1,scikit-learn==0.20.3,scipy==1.2.1,Shapely==1.6.4.post2,six==1.12.0,sklearn==0.0,snowballstemmer==1.2.1,Sphinx==2.0.1,sphinx-rtd-theme==0.4.3,sphinxcontrib-applehelp==1.0.1,sphinxcontrib-devhelp==1.0.1,sphinxcontrib-htmlhelp==1.0.2,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-qthelp==1.0.2,sphinxcontrib-serializinghtml==1.1.3,SQLAlchemy==1.3.3,tableschema==1.4.1,tabulator==1.20.0,toml==0.10.0,traitlets==4.3.2,tsam==1.0.3,unicodecsv==0.14.1,urllib3==1.24.3,wcwidth==0.1.7,xlrd==1.2.0
docs run-test-pre: PYTHONHASHSEED='1653473122'
docs run-test: commands[0] | sphinx-build -E -b html docs dist/docs
Running Sphinx v2.0.1
making output directory... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 11 source files that are out of date
updating environment: 11 added, 0 changed, 0 removed
/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216, got 192
return f(*args, **kwds)
/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 192 from C header, got 216 from PyObject
return f(*args, **kwds)
/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216, got 192
return f(*args, **kwds)
reading sources... [100%] usage
/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/oemof/tabular/facades.py:docstring of oemof.tabular.facades:1: WARNING: Inline interpreted text or phrase reference start-string without end-string.
WARNING: autodoc: failed to import module 'geometry' from module 'oemof.tabular.tools'; the following exception was raised:
Traceback (most recent call last):
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/sphinx/ext/autodoc/importer.py", line 232, in import_module
__import__(modname)
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/oemof/tabular/tools/geometry.py", line 129, in <module>
geom, fr=pyproj.Proj(proj="longlat"), to=pyproj.Proj(proj="aea")
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/pyproj/proj.py", line 295, in __init__
self.crs = CRS.from_user_input(projparams if projparams is not None else kwargs)
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/pyproj/crs.py", line 224, in from_user_input
return cls(**value)
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/pyproj/crs.py", line 146, in __init__
super(CRS, self).__init__(projstring)
File "pyproj/_crs.pyx", line 317, in pyproj._crs._CRS.__init__
pyproj.exceptions.CRSError: Invalid projection: +proj=aea +type=crs: (Internal Proj Error: proj_create: Error -21: conic lat_1 = -lat_2)
/home/clemens/znes_clemens/repositories/oemof-tabular/docs/usage.rst:61: WARNING: Bullet list ends without a blank line; unexpected unindent.
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] usage
generating indices... genindex py-modindex
highlighting module code... [100%] oemof.tabular.tools
writing additional pages... search/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/sphinx_rtd_theme/search.html:20: RemovedInSphinx30Warning: To modify script_files in the theme is deprecated. Please insert a <script> tag directly in your theme instead.
{{ super() }}
copying static files... done
copying extra files... done
dumping search index in English (code: en) ... done
dumping object inventory... done
build succeeded, 3 warnings.
The HTML pages are in dist/docs.
docs run-test: commands[1] | sphinx-build -b linkcheck docs dist/docs
Running Sphinx v2.0.1
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [linkcheck]: targets for 11 source files that are out of date
updating environment: [] 0 added, 1 changed, 0 removed
reading sources... [100%] reference/oemof.tabular.tools
WARNING: autodoc: failed to import module 'geometry' from module 'oemof.tabular.tools'; the following exception was raised:
Traceback (most recent call last):
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/sphinx/ext/autodoc/importer.py", line 232, in import_module
__import__(modname)
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/oemof/tabular/tools/geometry.py", line 129, in <module>
geom, fr=pyproj.Proj(proj="longlat"), to=pyproj.Proj(proj="aea")
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/pyproj/proj.py", line 295, in __init__
self.crs = CRS.from_user_input(projparams if projparams is not None else kwargs)
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/pyproj/crs.py", line 224, in from_user_input
return cls(**value)
File "/home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/lib/python3.6/site-packages/pyproj/crs.py", line 146, in __init__
super(CRS, self).__init__(projstring)
File "pyproj/_crs.pyx", line 317, in pyproj._crs._CRS.__init__
pyproj.exceptions.CRSError: Invalid projection: +proj=aea +type=crs: (Internal Proj Error: proj_create: Error -21: conic lat_1 = -lat_2)
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [ 9%] authors
(line 5) ok https://oemof.org
writing output... [ 18%] changelog
writing output... [ 27%] contributing
(line 76) ok https://travis-ci.org/oemof/oemof-tabular/pull_requests
(line 52) ok https://tox.readthedocs.io/en/latest/install.html
(line 40) ok https://github.com/oemof/oemof-tabular
(line 27) ok https://github.com/oemof/oemof-tabular/issues
(line 11) ok https://github.com/oemof/oemof-tabular/issues
writing output... [ 36%] index
writing output... [ 45%] installation
writing output... [ 54%] readme
(line 9) ok https://travis-ci.org/oemof/oemof-tabular
(line 7) ok https://pypi.org/project/oemof.tabular
(line 7) ok https://pypi.org/project/oemof.tabular
(line 7) ok https://github.com/oemof/oemof-tabular/blob/master/LICENSE
(line 9) ok https://ci.appveyor.com/project/gnn/oemof-tabular
(line 9) ok https://readthedocs.org/projects/oemof-tabular
(line 11) ok https://scrutinizer-ci.com/g/oemof/oemof-tabular/
(line 9) ok https://requires.io/github/oemof/oemof-tabular/requirements/?branch=master
(line 11) ok https://coveralls.io/github/oemof/oemof-tabular
(line 11) ok https://codecov.io/github/oemof/oemof-tabular
(line 11) ok https://codeclimate.com/github/oemof/oemof-tabular
(line 79) broken https://pip.pypa.io/en/stable/news/#id58 - Anchor 'id58' not found
(line 11) ok https://app.codacy.com/project/gnn/oemof-tabular/dashboard
(line 96) redirect https://oemof-tabular.readthedocs.io/ - with Found to https://oemof-tabular.readthedocs.io/en/latest/
(line 7) ok https://img.shields.io/pypi/v/oemof.tabular.svg
(line 7) ok https://img.shields.io/pypi/pyversions/oemof.tabular.svg
(line 7) ok https://img.shields.io/pypi/l/oemof-tabular.svg?colorB=blue
(line 9) ok https://ci.appveyor.com/api/projects/status/github/oemof/oemof-tabular?branch=master&svg=true
(line 9) ok https://readthedocs.org/projects/oemof-tabular/badge/?style=flat
(line 9) ok https://requires.io/github/oemof/oemof-tabular/requirements.svg?branch=master
(line 9) redirect https://travis-ci.org/oemof/oemof-tabular.svg?branch=master - permanently to https://api.travis-ci.org/oemof/oemof-tabular.svg?branch=master
(line 7) ok https://github.com/oemof/oemof-tabular/compare/v0.0.1...master
(line 7) ok https://img.shields.io/badge/dynamic/json.svg?label=%2B&url=https%3A%2F%2Fapi.github.com%2Frepos%2Foemof%2Foemof-tabular%2Fcompare%2Fv0.0.1...master&query=%24.total_commits&colorB=blue
(line 9) ok https://img.shields.io/pypi/wheel/oemof.tabular.svg
(line 11) ok https://img.shields.io/codacy/grade/14dbd9b9c5e34f8b80e73887b5aa6e6c.svg
(line 11) redirect https://codecov.io/github/oemof/oemof-tabular/coverage.svg?branch=master - permanently to https://codecov.io/gh/oemof/oemof-tabular/branch/master/graphs/badge.svg?branch=master
(line 11) redirect https://coveralls.io/repos/oemof/oemof-tabular/badge.svg?branch=master&service=github - with Found to https://s3.amazonaws.com/assets.coveralls.io/badges/coveralls_33.svg
(line 11) redirect https://img.shields.io/scrutinizer/g/oemof/oemof-tabular/master.svg - permanently to https://img.shields.io/scrutinizer/quality/g/oemof/oemof-tabular/master.svg
(line 11) redirect https://codeclimate.com/github/oemof/oemof-tabular/badges/gpa.svg - with Found to https://api.codeclimate.com/v1/badges/d93206b72ac217691c45/maintainability.svg
writing output... [ 63%] reference/index
writing output... [ 72%] reference/oemof.tabular
writing output... [ 81%] reference/oemof.tabular.datapackage
writing output... [ 90%] reference/oemof.tabular.tools
writing output... [100%] usage
(line 94) ok https://frictionlessdata.io/specs/tabular-data-package/
build finished with problems, 1 warning.
ERROR: InvocationError for command /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/docs/bin/sphinx-build -b linkcheck docs dist/docs (exited with code 1)
py34-cover create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py34-cover
ERROR: InterpreterNotFound: python3.4
py34-nocov create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py34-nocov
ERROR: InterpreterNotFound: python3.4
py35-cover create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py35-cover
ERROR: InterpreterNotFound: python3.5
py35-nocov create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py35-nocov
ERROR: InterpreterNotFound: python3.5
py36-cover create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py36-cover
py36-cover installdeps: pytest, pytest-travis-fold, pytest-cov
py36-cover develop-inst: /home/clemens/znes_clemens/repositories/oemof-tabular
py36-cover installed: appdirs==1.4.3,asn1crypto==0.24.0,atomicwrites==1.3.0,attrs==19.1.0,backcall==0.1.0,bcrypt==3.1.6,cchardet==2.1.4,certifi==2019.3.9,cffi==1.12.3,chardet==3.0.4,Click==7.0,coverage==4.5.3,cryptography==2.6.1,cycler==0.10.0,datapackage==1.6.0,decorator==4.4.0,dill==0.2.9,et-xmlfile==1.0.1,geojson==2.4.1,idna==2.8,ijson==2.3,ipython==7.5.0,ipython-genutils==0.2.0,isodate==0.6.0,jdcal==1.4.1,jedi==0.13.3,jsonlines==1.2.0,jsonpointer==2.0,jsonschema==3.0.1,jupyter-core==4.4.0,kiwisolver==1.1.0,linear-tsv==1.1.0,matplotlib==3.0.3,more-itertools==7.0.0,nbformat==4.4.0,networkx==2.2,nose==1.3.7,numpy==1.16.3,oemof==0.2.4.dev0,-e [email protected]:oemof/oemof-tabular.git@a969c2bf8865d9687abe3e828400139cb8f3c40b#egg=oemof.tabular,openpyxl==2.4.11,pandas==0.24.2,paramiko==2.4.2,parso==0.4.0,pexpect==4.7.0,pickleshare==0.7.5,plotly==3.9.0,pluggy==0.11.0,ply==3.11,prompt-toolkit==2.0.9,ptyprocess==0.6.0,py==1.8.0,pyasn1==0.4.5,pycparser==2.19,Pygments==2.3.1,PyNaCl==1.3.0,Pyomo==5.6.2,pyparsing==2.4.0,pyproj==2.1.3,pyrsistent==0.15.1,pyshp==2.1.0,pytest==4.4.1,pytest-cov==2.7.1,pytest-travis-fold==1.3.0,python-dateutil==2.8.0,pytz==2019.1,PyUtilib==5.7.0,requests==2.21.0,retrying==1.3.3,rfc3986==1.3.1,scikit-learn==0.20.3,scipy==1.2.1,Shapely==1.6.4.post2,six==1.12.0,sklearn==0.0,SQLAlchemy==1.3.3,tableschema==1.4.1,tabulator==1.20.0,toml==0.10.0,traitlets==4.3.2,tsam==1.0.3,unicodecsv==0.14.1,urllib3==1.24.3,wcwidth==0.1.7,xlrd==1.2.0
py36-cover run-test-pre: PYTHONHASHSEED='1653473122'
py36-cover run-test: commands[0] | pytest --cov --cov-report=term-missing -vv
======================================== test session starts =========================================
platform linux -- Python 3.6.7, pytest-4.4.1, py-1.8.0, pluggy-0.11.0 -- /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py36-cover/bin/python
cachedir: .tox/py36-cover/.pytest_cache
rootdir: /home/clemens/znes_clemens/repositories/oemof-tabular, inifile: setup.cfg
plugins: travis-fold-1.3.0, cov-2.7.1
collected 16 items / 3 errors / 13 selected
=============================================== ERRORS ===============================================
__________________ ERROR collecting src/oemof/tabular/examples/scripting/compute.py __________________
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/misc.py:57: in apply_indexed_rule
return rule(model, *index)
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/components.py:316: in _storage_capacity_bound_rule
bounds = (n.nominal_storage_capacity * n.min_storage_level[t],
E TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
During handling of the above exception, another exception occurred:
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/misc.py:72: in apply_indexed_rule
return rule(model)
E TypeError: _storage_capacity_bound_rule() missing 2 required positional arguments: 'n' and 't'
During handling of the above exception, another exception occurred:
src/oemof/tabular/examples/scripting/compute.py:30: in <module>
m = Model(es)
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/models.py:261: in __init__
super().__init__(energysystem, **kwargs)
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/models.py:78: in __init__
self._construct()
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/models.py:85: in _construct
self._add_child_blocks()
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/models.py:113: in _add_child_blocks
block._create(group=self.es.groups.get(group))
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/components.py:320: in _create
bounds=_storage_capacity_bound_rule)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/block.py:568: in __setattr__
self.add_component(name, val)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/block.py:1008: in add_component
val.construct(data)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/var.py:609: in construct
self._initialize_members(self._index)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/var.py:736: in _initialize_members
key)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/misc.py:80: in apply_indexed_rule
return rule(model, *index)
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/components.py:316: in _storage_capacity_bound_rule
bounds = (n.nominal_storage_capacity * n.min_storage_level[t],
E TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
------------------------------------------ Captured stdout -------------------------------------------
ERROR: Constructing component 'GenericStorageBlock.capacity' from data=None
failed: TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
______________ ERROR collecting src/oemof/tabular/examples/scripting/postprocessing.py _______________
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/misc.py:57: in apply_indexed_rule
return rule(model, *index)
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/components.py:316: in _storage_capacity_bound_rule
bounds = (n.nominal_storage_capacity * n.min_storage_level[t],
E TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
During handling of the above exception, another exception occurred:
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/misc.py:72: in apply_indexed_rule
return rule(model)
E TypeError: _storage_capacity_bound_rule() missing 2 required positional arguments: 'n' and 't'
During handling of the above exception, another exception occurred:
src/oemof/tabular/examples/scripting/postprocessing.py:25: in <module>
m = Model(es)
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/models.py:261: in __init__
super().__init__(energysystem, **kwargs)
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/models.py:78: in __init__
self._construct()
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/models.py:85: in _construct
self._add_child_blocks()
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/models.py:113: in _add_child_blocks
block._create(group=self.es.groups.get(group))
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/components.py:320: in _create
bounds=_storage_capacity_bound_rule)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/block.py:568: in __setattr__
self.add_component(name, val)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/block.py:1008: in add_component
val.construct(data)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/var.py:609: in construct
self._initialize_members(self._index)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/var.py:736: in _initialize_members
key)
.tox/py36-cover/lib/python3.6/site-packages/pyomo/core/base/misc.py:80: in apply_indexed_rule
return rule(model, *index)
.tox/py36-cover/lib/python3.6/site-packages/oemof/solph/components.py:316: in _storage_capacity_bound_rule
bounds = (n.nominal_storage_capacity * n.min_storage_level[t],
E TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
------------------------------------------ Captured stdout -------------------------------------------
Runnig postprocessing example with datapackage dispatch
Runnig postprocessing example with datapackage investment
ERROR: Constructing component 'GenericStorageBlock.capacity' from data=None
failed: TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
------------------------------------------ Captured stderr -------------------------------------------
ERROR:pyomo.core:Constructing component 'GenericStorageBlock.capacity' from data=None failed:
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
________________________ ERROR collecting src/oemof/tabular/tools/geometry.py ________________________
src/oemof/tabular/tools/geometry.py:129: in <module>
geom, fr=pyproj.Proj(proj="longlat"), to=pyproj.Proj(proj="aea")
.tox/py36-cover/lib/python3.6/site-packages/pyproj/proj.py:295: in __init__
self.crs = CRS.from_user_input(projparams if projparams is not None else kwargs)
.tox/py36-cover/lib/python3.6/site-packages/pyproj/crs.py:224: in from_user_input
return cls(**value)
.tox/py36-cover/lib/python3.6/site-packages/pyproj/crs.py:146: in __init__
super(CRS, self).__init__(projstring)
pyproj/_crs.pyx:317: in pyproj._crs._CRS.__init__
???
E pyproj.exceptions.CRSError: Invalid projection: +proj=aea +type=crs: (Internal Proj Error: proj_create: Error -21: conic lat_1 = -lat_2)
----------- coverage: platform linux, python 3.6.7-final-0 -----------
Name Stmts Miss Branch BrPart Cover Missing
-------------------------------------------------------------------------------------------------------
src/oemof/tabular/__init__.py 2 0 0 0 100.00%
src/oemof/tabular/__main__.py 3 1 2 1 60.00% 14, 13->14
src/oemof/tabular/cli.py 31 21 12 0 23.26% 13-77, 83, 90, 94
src/oemof/tabular/datapackage/__init__.py 3 0 0 0 100.00%
src/oemof/tabular/datapackage/aggregation.py 75 65 32 0 9.35% 33-101, 119-225
src/oemof/tabular/datapackage/building.py 256 223 114 0 8.92% 30-37, 43-58, 97-191, 207-226, 246-256, 276-287, 301-314, 334-397, 413-415, 425-454, 460-477, 488-503, 517-527, 545-553, 573-590, 611-647, 678-700, 732-759
src/oemof/tabular/datapackage/processing.py 37 27 14 0 19.61% 29-70, 84-88, 94-97
src/oemof/tabular/datapackage/reading.py 146 42 113 20 67.57% 64, 77, 104, 112-113, 120, 195-202, 247-272, 295-298, 322-329, 346, 364, 37->39, 63->64, 76->77, 99->102, 103->104, 146->exit, 146->exit, 146->exit, 146->exit, 146->exit, 146->exit, 146->exit, 194->195, 229->225, 274->exit, 274->exit, 274->exit, 319->364, 321->322, 335->346
src/oemof/tabular/examples/scripting/compute.py 15 3 2 1 76.47% 36-43, 19->23
src/oemof/tabular/examples/scripting/plotting.py 6 0 0 0 100.00%
src/oemof/tabular/examples/scripting/postprocessing.py 23 1 6 3 86.21% 34, 12->exit, 30->12, 33->34
src/oemof/tabular/facades.py 225 50 24 4 72.69% 47-48, 59, 65-89, 102, 161-188, 193-218, 911-939, 1085-1095, 1102-1109, 1117-1123, 1131, 1139, 45->47, 58->59, 64->65, 910->911
src/oemof/tabular/tools/__init__.py 14 4 10 2 66.67% 18, 24-27, 68->exit, 69->72
src/oemof/tabular/tools/geometry.py 69 52 35 0 16.35% 36-77, 92-95, 113-125, 137-180
src/oemof/tabular/tools/plots.py 49 13 38 3 70.11% 45, 60, 134-135, 152-167, 44->45, 59->60, 133->134
src/oemof/tabular/tools/postprocessing.py 126 72 87 7 44.60% 23, 66-74, 79-83, 105, 132, 157-263, 22->23, 65->66, 75->64, 78->79, 104->105, 115->109, 131->132
tests/regression_tests.py 8 5 0 0 37.50% 23-27
tests/test_examples.py 18 12 10 0 21.43% 17-37, 43-47
tests/test_oemof_tabular.py 7 3 0 0 57.14% 9-10, 16
-------------------------------------------------------------------------------------------------------
TOTAL 1113 594 499 41 41.75%
====================================== short test summary info =======================================
FAILED src/oemof/tabular/examples/scripting/compute.py
FAILED src/oemof/tabular/examples/scripting/postprocessing.py
FAILED src/oemof/tabular/tools/geometry.py
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 3 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
====================================== 3 error in 10.87 seconds ======================================
ERROR: InvocationError for command /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py36-cover/bin/pytest --cov --cov-report=term-missing -vv (exited with code 2)
py36-nocov create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py36-nocov
py36-nocov installdeps: pytest, pytest-travis-fold
py36-nocov inst: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/.tmp/package/1/oemof.tabular-0.0.1.dev0.zip
py36-nocov installed: appdirs==1.4.3,asn1crypto==0.24.0,atomicwrites==1.3.0,attrs==19.1.0,backcall==0.1.0,bcrypt==3.1.6,cchardet==2.1.4,certifi==2019.3.9,cffi==1.12.3,chardet==3.0.4,Click==7.0,cryptography==2.6.1,cycler==0.10.0,datapackage==1.6.0,decorator==4.4.0,dill==0.2.9,et-xmlfile==1.0.1,geojson==2.4.1,idna==2.8,ijson==2.3,ipython==7.5.0,ipython-genutils==0.2.0,isodate==0.6.0,jdcal==1.4.1,jedi==0.13.3,jsonlines==1.2.0,jsonpointer==2.0,jsonschema==3.0.1,jupyter-core==4.4.0,kiwisolver==1.1.0,linear-tsv==1.1.0,matplotlib==3.0.3,more-itertools==7.0.0,nbformat==4.4.0,networkx==2.2,nose==1.3.7,numpy==1.16.3,oemof==0.2.4.dev0,oemof.tabular==0.0.1.dev0,openpyxl==2.4.11,pandas==0.24.2,paramiko==2.4.2,parso==0.4.0,pexpect==4.7.0,pickleshare==0.7.5,plotly==3.9.0,pluggy==0.11.0,ply==3.11,prompt-toolkit==2.0.9,ptyprocess==0.6.0,py==1.8.0,pyasn1==0.4.5,pycparser==2.19,Pygments==2.3.1,PyNaCl==1.3.0,Pyomo==5.6.2,pyparsing==2.4.0,pyproj==2.1.3,pyrsistent==0.15.1,pyshp==2.1.0,pytest==4.4.1,pytest-travis-fold==1.3.0,python-dateutil==2.8.0,pytz==2019.1,PyUtilib==5.7.0,requests==2.21.0,retrying==1.3.3,rfc3986==1.3.1,scikit-learn==0.20.3,scipy==1.2.1,Shapely==1.6.4.post2,six==1.12.0,sklearn==0.0,SQLAlchemy==1.3.3,tableschema==1.4.1,tabulator==1.20.0,toml==0.10.0,traitlets==4.3.2,tsam==1.0.3,unicodecsv==0.14.1,urllib3==1.24.3,wcwidth==0.1.7,xlrd==1.2.0
py36-nocov run-test-pre: PYTHONHASHSEED='1653473122'
py36-nocov run-test: commands[0] | pytest -vv --ignore=src
======================================== test session starts =========================================
platform linux -- Python 3.6.7, pytest-4.4.1, py-1.8.0, pluggy-0.11.0 -- /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py36-nocov/bin/python
cachedir: .tox/py36-nocov/.pytest_cache
rootdir: /home/clemens/znes_clemens/repositories/oemof-tabular, inifile: setup.cfg
plugins: travis-fold-1.3.0
collected 5 items
tests/regression_tests.py::test_how_initialize_loads_the_default_configuration PASSED [ 20%]
tests/test_examples.py::test_example_datapackage_readability PASSED [ 40%]
tests/test_examples.py::test_scripting_examples FAILED [ 60%]
tests/test_oemof_tabular.py::test_version_specification PASSED [ 80%]
tests/test_oemof_tabular.py::test_project_name PASSED [100%]
============================================== FAILURES ==============================================
______________________________________ test_scripting_examples _______________________________________
.tox/py36-nocov/lib/python3.6/site-packages/pyomo/core/base/misc.py:57: in apply_indexed_rule
return rule(model, *index)
.tox/py36-nocov/lib/python3.6/site-packages/oemof/solph/components.py:316: in _storage_capacity_bound_rule
bounds = (n.nominal_storage_capacity * n.min_storage_level[t],
E TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
During handling of the above exception, another exception occurred:
.tox/py36-nocov/lib/python3.6/site-packages/pyomo/core/base/misc.py:72: in apply_indexed_rule
return rule(model)
E TypeError: _storage_capacity_bound_rule() missing 2 required positional arguments: 'n' and 't'
During handling of the above exception, another exception occurred:
tests/test_examples.py:51: in test_scripting_examples
"examples/scripting/{}".format(example),
<string>:30: in <module>
???
.tox/py36-nocov/lib/python3.6/site-packages/oemof/solph/models.py:261: in __init__
super().__init__(energysystem, **kwargs)
.tox/py36-nocov/lib/python3.6/site-packages/oemof/solph/models.py:78: in __init__
self._construct()
.tox/py36-nocov/lib/python3.6/site-packages/oemof/solph/models.py:85: in _construct
self._add_child_blocks()
.tox/py36-nocov/lib/python3.6/site-packages/oemof/solph/models.py:113: in _add_child_blocks
block._create(group=self.es.groups.get(group))
.tox/py36-nocov/lib/python3.6/site-packages/oemof/solph/components.py:320: in _create
bounds=_storage_capacity_bound_rule)
.tox/py36-nocov/lib/python3.6/site-packages/pyomo/core/base/block.py:568: in __setattr__
self.add_component(name, val)
.tox/py36-nocov/lib/python3.6/site-packages/pyomo/core/base/block.py:1008: in add_component
val.construct(data)
.tox/py36-nocov/lib/python3.6/site-packages/pyomo/core/base/var.py:609: in construct
self._initialize_members(self._index)
.tox/py36-nocov/lib/python3.6/site-packages/pyomo/core/base/var.py:736: in _initialize_members
key)
.tox/py36-nocov/lib/python3.6/site-packages/pyomo/core/base/misc.py:80: in apply_indexed_rule
return rule(model, *index)
.tox/py36-nocov/lib/python3.6/site-packages/oemof/solph/components.py:316: in _storage_capacity_bound_rule
bounds = (n.nominal_storage_capacity * n.min_storage_level[t],
E TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
---------------------------------------- Captured stdout call ----------------------------------------
Runnig scripting example compute.py ...
ERROR: Constructing component 'GenericStorageBlock.capacity' from data=None
failed: TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
----------------------------------------- Captured log call ------------------------------------------
block.py 1014 ERROR Constructing component 'GenericStorageBlock.capacity' from data=None failed:
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
====================================== short test summary info =======================================
FAILED tests/test_examples.py::test_scripting_examples
================================= 1 failed, 4 passed in 3.02 seconds =================================
ERROR: InvocationError for command /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py36-nocov/bin/pytest -vv --ignore=src (exited with code 1)
py37-cover create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py37-cover
ERROR: InterpreterNotFound: python3.7
py37-nocov create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/py37-nocov
ERROR: InterpreterNotFound: python3.7
report create: /home/clemens/znes_clemens/repositories/oemof-tabular/.tox/report
report installdeps: coverage
report installed: coverage==4.5.3
report run-test-pre: PYTHONHASHSEED='1653473122'
report run-test: commands[0] | coverage report
Name Stmts Miss Branch BrPart Cover Missing
-------------------------------------------------------------------------------------------------------
src/oemof/tabular/__init__.py 2 0 0 0 100.00%
src/oemof/tabular/__main__.py 3 1 2 1 60.00% 14, 13->14
src/oemof/tabular/cli.py 31 21 12 0 23.26% 13-77, 83, 90, 94
src/oemof/tabular/datapackage/__init__.py 3 0 0 0 100.00%
src/oemof/tabular/datapackage/aggregation.py 75 65 32 0 9.35% 33-101, 119-225
src/oemof/tabular/datapackage/building.py 256 223 114 0 8.92% 30-37, 43-58, 97-191, 207-226, 246-256, 276-287, 301-314, 334-397, 413-415, 425-454, 460-477, 488-503, 517-527, 545-553, 573-590, 611-647, 678-700, 732-759
src/oemof/tabular/datapackage/processing.py 37 27 14 0 19.61% 29-70, 84-88, 94-97
src/oemof/tabular/datapackage/reading.py 146 42 113 20 67.57% 64, 77, 104, 112-113, 120, 195-202, 247-272, 295-298, 322-329, 346, 364, 37->39, 63->64, 76->77, 99->102, 103->104, 146->exit, 146->exit, 146->exit, 146->exit, 146->exit, 146->exit, 146->exit, 194->195, 229->225, 274->exit, 274->exit, 274->exit, 319->364, 321->322, 335->346
src/oemof/tabular/examples/scripting/compute.py 15 3 2 1 76.47% 36-43, 19->23
src/oemof/tabular/examples/scripting/plotting.py 6 0 0 0 100.00%
src/oemof/tabular/examples/scripting/postprocessing.py 23 1 6 3 86.21% 34, 12->exit, 30->12, 33->34
src/oemof/tabular/facades.py 225 50 24 4 72.69% 47-48, 59, 65-89, 102, 161-188, 193-218, 911-939, 1085-1095, 1102-1109, 1117-1123, 1131, 1139, 45->47, 58->59, 64->65, 910->911
src/oemof/tabular/tools/__init__.py 14 4 10 2 66.67% 18, 24-27, 68->exit, 69->72
src/oemof/tabular/tools/geometry.py 69 52 35 0 16.35% 36-77, 92-95, 113-125, 137-180
src/oemof/tabular/tools/plots.py 49 13 38 3 70.11% 45, 60, 134-135, 152-167, 44->45, 59->60, 133->134
src/oemof/tabular/tools/postprocessing.py 126 72 87 7 44.60% 23, 66-74, 79-83, 105, 132, 157-263, 22->23, 65->66, 75->64, 78->79, 104->105, 115->109, 131->132
tests/regression_tests.py 8 5 0 0 37.50% 23-27
tests/test_examples.py 18 12 10 0 21.43% 17-37, 43-47
tests/test_oemof_tabular.py 7 3 0 0 57.14% 9-10, 16
-------------------------------------------------------------------------------------------------------
TOTAL 1113 594 499 41 41.75%
report run-test: commands[1] | coverage html
______________________________________________ summary _______________________________________________
clean: commands succeeded
ERROR: check: commands failed
ERROR: docs: commands failed
ERROR: py34-cover: InterpreterNotFound: python3.4
ERROR: py34-nocov: InterpreterNotFound: python3.4
ERROR: py35-cover: InterpreterNotFound: python3.5
ERROR: py35-nocov: InterpreterNotFound: python3.5
ERROR: py36-cover: commands failed
ERROR: py36-nocov: commands failed
ERROR: py37-cover: InterpreterNotFound: python3.7
ERROR: py37-nocov: InterpreterNotFound: python3.7
report: commands succeeded
The docs advises to run tox.
But tox.ini has been deleted in b02640a.
Need to decide:
Additional constraints like emission constraints or relations between flows are an important part of energy system models. By now, one can add them after creating the pyomo model.
Suggested feature: Support saving constraints with the datapackage.
First thoughts:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.