Code Monkey home page Code Monkey logo

emu's People

Contributors

cehbrecht avatar davidcaron avatar f-plt avatar fklemme avatar huard avatar nilshempelmann avatar tlvu avatar zeitsperre avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

emu's Issues

Install fails: ImportError: libiconv.so.2

Description

Install fails due to conda dependency errors ... see below.

Steps to Reproduce

See failed build on travis:

$ python setup.py install
Traceback (most recent call last):
  File "setup.py", line 5, in <module>
    version = __import__('emu').__version__
  File "/home/travis/build/bird-house/emu/emu/__init__.py", line 1, in <module>
    from .wsgi import application
  File "/home/travis/build/bird-house/emu/emu/wsgi.py", line 2, in <module>
    from pywps.app.Service import Service
  File "/home/travis/miniconda/envs/emu/lib/python3.6/site-packages/pywps/__init__.py", line 10, in <module>
    from lxml.builder import ElementMaker
ImportError: libiconv.so.2: cannot open shared object file: No such file or directory

Additional Information

https://travis-ci.org/bird-house/emu

Defining WPS profiles in PyWPS

Description

It happens quite often that we have a set of processes with common input (and output) parameters. In WPS the process signature (inputs+outputs) is called a profile (I think). To avoid copy+paste of this process parameters one could use Python decorators or mixin classes to define a commonly used profile which can be adapted by each individual process.

Here are some examples how it could look like:

Environment

  • Emu version used, if any:
  • Python version, if any:
  • Operating System:

Steps to Reproduce

Additional Information

PercentCompleted

Description

Processes should provide the percent completed information so we can log their progress.

don't start service again when it is still running

Description

... otherwise I get an exception like this:
OSError: [Errno 48] Address already in use

... and I loose the pid file and can' just kill the running service with make stop.

Environment

  • Emu version used, if any: 0.8.0
  • Python version, if any:
  • Operating System:

Steps to Reproduce

$ make start
$ make status
$ make start
OSError: [Errno 48] Address already in use

Additional Information

pywps produces duplicate outputs

latest pywps from conda (pywps-4.0.0-py27_36.) produces duplicate outputs, out.txt and out_dNeESE.txt for example:

2018-02-05 14:11:21,158] [INFO] Storing file output to /Users/pingu/birdhouse/var/lib/pywps/outputs/emu/0b37a440-0a76-11e8-966f-acde48001122/out.txt
2018-02-05 14:11:21,163] [INFO] Storing file output to /Users/pingu/birdhouse/var/lib/pywps/outputs/emu/0b37a440-0a76-11e8-966f-acde48001122/out_dNeESE.txt

document usage of bind_host

Description

This docs are silent about the usage of bind_host.

From reading the code the relevant parameter is hostname. This parameter is used in the pywps config and well be used in the wps response documents.

But one can use bind_host to set the IP address used to start the service โ€ฆ but this is not part of the pywps config. Bind_host is used in the docker container.

Describe what you were trying to get done or your feature request.

Environment

  • Emu version used, if any: 0.9.0
  • Python version, if any:
  • Operating System:

Steps to Reproduce

Additional Information

Clean up test-suite using pywps test utils

Description

The current test suite has copied util methods form pywps, like get_output:

def get_output(doc):

We should make the pywps test utils public available. We should also have a look at Get and Post test examples.

Common test tools should be part of pywps and not copied by each WPS bird.

Additional Information

See also PR #48.

DAP server running in parallel with Emu

Description

We have a lot of processes that return netCDF files. As of now, they are served as file URL. It would be useful to be able to serve them as well through DAP.

I suggest Emu includes an option to configure and launch a netCDF handler based on pydap to serve the outputs created by Emu. In production, we would use THREDDS, but I think it would be easier for testing to use pydap.

See geopython/pywps#513

Missing stop/status commands in latest pywps cli

Description

The latest pywps command line interface introduced in the watchdog PR is missing the daemon mode and has therefore only a start command but no stop/status commands. We like to have the pywps daemon mode back.

See comments in PR #95

Environment

  • Emu version used, if any:
  • Python version, if any:
  • Operating System:

Steps to Reproduce

Additional Information

Shall we use Flask?

Description

The PyWPS demo is an app build with Flask:
https://github.com/geopython/pywps-flask

It is not necessary to use it, it would add another dependency ... but we could have a nice front-page like in the pywps-demo. We could make this decision optional in the cookiecutter.

Environment

Steps to Reproduce

Additional Information

add https support for testing

Description

Werkzeug can also start the WPS service with HTTPS. See Werkzeug documentation.

Environment

  • Emu version used, if any:
  • Python version, if any:
  • Operating System:

Steps to Reproduce

Additional Information

Live Emu server for public testing

Description

I think it would be useful to have a public live emu server that can be used for testing. The server would have both anonymous access and known credentials (testuser, testpassword) so we can test clients.

Docker image

Hi,

I am trying to build docker image for emu. At some point I get this:

Installing Anaconda ...
mkdir: cannot create directory '//anaconda': Permission denied
ERROR: Could not create directory: //anaconda
make: *** [anaconda] Error 1

I am not sure if this is problem in the Dockerfile, or something wrong with my docker installation.

make netcdf4 an optional dependency

Description

One of the processes nc_meta needs the netcdf4 library. Not a big deal currently in Emu ... but we could make this an optional dependency to have an example how to handle this.

Environment

  • Emu version used, if any: 0.9
  • Python version, if any:
  • Operating System:

Steps to Reproduce

Additional Information

tests do not write logs to configured file

Description

When just running make test the log file is empty though it should contain some logs according to the default.cfg.

Environment

  • Emu version used, if any: 0.9.1
  • Python version, if any:
  • Operating System:

Steps to Reproduce

Try the following:

$ pytest --log-cli-level=DEBUG

__init__.py                 15 DEBUG    setting core variables
_compat.py                  25 DEBUG    Python 3.x
configuration.py            69 INFO     loading configuration
configuration.py            75 DEBUG    setting default values
configuration.py           188 DEBUG    UNIX based environment
configuration.py           200 DEBUG    trying to estimate the default location
configuration.py           144 INFO     No configuration files loaded. Using default values

Looks like the pywps service in the tests does not load our default.cfg.

Additional Information

https://docs.pytest.org/en/latest/logging.html

Add process with non-python identifier

Description

Add a dummy process whose identifier contains characters that are not allowed in python variables.
Would be useful to test owslib and birdy.

wordcounter assumes stream is bytes

Description

In the _handler, we have

        def words(f):
            for line in f:
                for word in wordre.findall(line.decode('UTF-8')):
                    yield word

which assumes line has a decode method, but the supported_format (TEXT) does not explicitly specify that the encoding is utf-8. So if the content is passed as an embedded string in the request, with no encoding information, the process fails.

Include process with Metalink output for multiple output files.

Description

Using a Metalink file to store references to multiple output files.

 <?xml version="1.0" encoding="UTF-8"?>
 <metalink xmlns="urn:ietf:params:xml:ns:metalink">
   <published>2009-05-15T12:23:23Z</published>
   <file name="example.ext">
     <size>14471447</size>
     <identity>Example</identity>
     <version>1.0</version>
     <language>en</language>
     <description>
     A description of the example file for download.
     </description>
     <hash type="sha-256">3d6fece8033d146d8611eab4f032df738c8c1283620fd02a1f2bfec6e27d590d</hash>
     <url location="de" priority="1">ftp://ftp.example.com/example.ext</url>
     <url location="fr" priority="1">http://example.com/example.ext</url>
     <metaurl mediatype="torrent" priority="2">http://example.com/example.ext.torrent</metaurl>
   </file>
 </metalink>

Add makefile recipe for testing Jupyter Notebooks

In a few other birds, I've added a recipe for running tests on Jupyter Notebooks. This allows for users to evaluate whether the output of their notebooks is consistent on their environment.

This requires a few more libraries (jupyter, nbval) that could be added to the environment.yml or their requirements.txt (ideally, this would be installed via Anaconda). I would also add an example notebook that attempts to load emu as a smoke test.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.