bird-house / flyingpigeon

WPS processes for climate model data, indices and extreme events
http://flyingpigeon.readthedocs.io/en/latest/
Apache License 2.0
19 stars 15 forks source link

Setup cruft for cookiecutter refresh #330

Closed tlvu closed 4 years ago

tlvu commented 4 years ago

This PR is part of issue https://github.com/bird-house/cookiecutter-birdhouse/issues/61, rolling out cruft as a mechanism to easily update cookiecutter template changes to existing project.

Require cookiecutter-birdhouse PR https://github.com/bird-house/cookiecutter-birdhouse/pull/89

In .cruft.json, I set "project_short_description": "A Web Processing Service Testbed." from the README.rst, let me know if that is still correct.

In README.rst, I took the Flyingpigeon bird description from docs/source/index.rst.

Noticeable changes:

Travis-CI build working: https://travis-ci.org/github/bird-house/flyingpigeon/builds/694013491 RtD build working: https://readthedocs.org/projects/flyingpigeon/builds/11184473/

tlvu commented 4 years ago

Did someone forgot a file flyingpigeon.processes.wpsio? Travis-CI error: https://travis-ci.org/github/bird-house/flyingpigeon/jobs/692366933

  from .wps_subset_wfs_polygon import SubsetWFSPolygonProcess

  File "/home/travis/miniconda/envs/flyingpigeon/lib/python3.6/site-packages/flyingpigeon-1.5.1-py3.6.egg/flyingpigeon/processes/wps_subset_wfs_polygon.py", line 8, in <module>

    from . wpsio import resource, variable, start, end, output, metalink

ModuleNotFoundError: No module named 'flyingpigeon.processes.wpsio'

The command "flyingpigeon start --daemon --bind-host 0.0.0.0 --port 5000" failed and exited with 1 during 
tlvu commented 4 years ago

pymetalink not installable in requirements_dev.txt (make develop) https://travis-ci.org/github/bird-house/flyingpigeon/jobs/692375450

ERROR: Could not find a version that satisfies the requirement pymetalink (from flyingpigeon==1.5.1) (from versions: none)

ERROR: No matching distribution found for pymetalink (from flyingpigeon==1.5.1)

Makefile:50: recipe for target 'develop' failed

make: [develop] Error 1 (ignored)
nilshempelmann commented 4 years ago

@tlvu

Did someone forgot a file flyingpigeon.processes.wpsio? Travis-CI error: https://travis-ci.org/github/bird-house/flyingpigeon/jobs/692366933

It's done here. https://github.com/bird-house/flyingpigeon/pull/329 We should merge that PR first

huard commented 4 years ago

I merged the PR (a bit too fast). Then opened another PR to fix remaining pep8 issues.

331

tlvu commented 4 years ago

Can I remove pymetalink from requirement_dev.txt? It's failing make develop which in turns fail make test-notebooks and make docs, see Travis-CI build https://travis-ci.org/github/bird-house/flyingpigeon/jobs/692554776

huard commented 4 years ago

We'll have to put it back again later because it is necessary for a number of processes.

pymetalink has to be installed from the github repo url I believe.

nilshempelmann commented 4 years ago

@tlvu

Can I remove pymetalink from requirement_dev.txt? It's failing make develop which in turns fail make test-notebooks and make docs, see Travis-CI build https://travis-ci.org/github/bird-house/flyingpigeon/jobs/692554776

Yes you can remove it. I had to install pymetalink manually, since the pip is not working well. Check the notebooks and comment pymetalink out there.

tlvu commented 4 years ago

Not installing pymetalink will cause some processes to fail.

Some FP processes would fail? Then pymetalink should have been in the environment.yml then? Because stuff in requirements_dev.txt is not in the docker image, these are extra installs for running tests and generating docs only.

nilshempelmann commented 4 years ago

Not installing pymetalink will cause some processes to fail.

Which one? I included pymetalink while setting up the notebook examples

huard commented 4 years ago

Scrap that, it's only needed by the client accessing processes with META4 ComplexOutputs.

tlvu commented 4 years ago

I got everthing working in Travis-CI (pytest, flakes8 (thanks David for flake8 fix), make docs) except the notebooks (yes notebooks now run part of Travis-CI !). I will need help for these errors.

Locally, you can reproduce with

https://travis-ci.org/github/bird-house/flyingpigeon/jobs/692686563 (https://api.travis-ci.org/v3/job/692686563/log.txt)

____________ docs/source/notebooks/subset_processes.ipynb::Cell 10 _____________

Notebook cell execution failed

Cell 10: Cell execution caused an exception

Input:

# Run the process

resp = fp_i.subset_continents(resource=urls, region=['Europe', 'Africa'], mosaic=True)

# using fp_i you need to wait until the processing is complete!

timeout = time.time() + 60*5   # 5 minutes from now

while resp.getStatus() != 'ProcessSucceeded': 

    time.sleep(1)

    if time.time() > timeout:  # to avoid endless waiting if the process failed

        break

# Check the output files:

cont = resp.get()

Traceback:

---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-11-ccabe938873f> in <module>

      1 # Run the process

----> 2 resp = fp_i.subset_continents(resource=urls, region=['Europe', 'Africa'], mosaic=True)

      3 

      4 # using fp_i you need to wait until the processing is complete!

      5 timeout = time.time() + 60*5   # 5 minutes from now

TypeError: subset_continents() got an unexpected keyword argument 'mosaic'

____________ docs/source/notebooks/subset_processes.ipynb::Cell 12 _____________

Notebook cell execution failed

Cell 12: Cell execution caused an exception

Input:

# The plot process returnes one graphic file. 

# It can be plotted directly by asking birdy to get python objects, instead of links to files.

resp.get(asobj=True).plotout_map

Traceback:

---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-13-3203d44d7305> in <module>

      1 # The plot process returnes one graphic file.

      2 # It can be plotted directly by asking birdy to get python objects, instead of links to files.

----> 3 resp.get(asobj=True).plotout_map

AttributeError: 'subset_bboxResponse' object has no attribute 'plotout_map'
huard commented 4 years ago

I won't be able to fix those before June 12th, so we either merge this as is or someone else fixes this in the meantime.

nilshempelmann commented 4 years ago

I got everthing working in Travis-CI (pytest, flakes8 (thanks David for flake8 fix), make docs) except the notebooks (yes notebooks now run part of Travis-CI !). I will need help for these errors.

I can help out next week.

tlvu commented 4 years ago

@nilshempelmann I just allowed make test-notebooks to fail in Travis-CI so now Travis-CI is now passing.

Let me know if you still intend to fix the notebook failures this week or I can simply merge this PR as-is and you can look at the notebooks later. At least now the notebooks are running and we have a trace or their status.

Just to be extra sure, can I have admin on https://flyingpigeon.readthedocs.io to test RtD build for this PR?