Interact with AGIV webservices.
Project description
CRABpy
======
This library provides access to the CRAB and CAPAKEY webservices operated by
the AGIV. Because connecting to these SOAP services from python can be somewhat
complicated, this library makes it easier.
.. image:: https://travis-ci.org/OnroerendErfgoed/crabpy.png?branch=master
:target: https://travis-ci.org/OnroerendErfgoed/crabpy
.. image:: https://badge.fury.io/py/crabpy.png
:target: http://badge.fury.io/py/crabpy
.. image:: https://coveralls.io/repos/OnroerendErfgoed/crabpy/badge.png?branch=master
:target: https://coveralls.io/r/OnroerendErfgoed/crabpy?branch=master
Using the CRAB webservice
-------------------------
Recently, the CRAB service has become public. The need to authenticate has been
removed, making it a whole lot easier to connect.
.. code-block:: python
from crabpy.client import crab_factory
crab = crab_factory()
res = crab.service.ListGemeentenByGewestId(1)
print res
Using the CAPAKEY webservice
----------------------------
This service does still require authentication. This requires a valid account
from agiv_. Because the authentication also requires some extra WS-Addressing
headers, a utility function has been provided to make life easier.
.. code-block:: python
from crabpy.client import capakey_factory, capakey_request
capakey = capakey_factory(
user='USER',
password='PASSWORD'
)
res = capakey_request(capakey, 'ListAdmGemeenten', 1)
print res
Using the CAPAKEY gateway
-------------------------
To make life easier and capakey more pythonic, we've also implemented a gateway
that abstracts some more of the service and provides richer objects as responses.
.. code-block:: python
from crabpy.client import capakey_factory
from crabpy.gateway.capakey import CapakeyGateway
capakey = capakey_factory(
user='USER',
password='PASSWORD'
)
g = CapakeyGateway(capakey)
res = g.list_gemeenten()
print res
See the examples folder for some more sample code.
Development
-----------
Crabpy is still in alpha development. Currently we're just happy to have gotten
a SOAP service working in python.
We try to cover as much code as we can with unit tests. You can run them using
tox_ or directly through nose:
.. code-block:: bash
$ tox
# No coverage
$ nosetests
# Coverage
$ nosetests --config nose_cover.cfg
If you have access to the capakey service, you can enter your credentials in
the `nose_development.ini` file and use that as a test config.
.. code-block:: bash
# Integration tests with nose but no coverage
$ nosetests --tc-file nose_development.ini
# Integration tests with nose and coverage
$ nosetests --tc-file nose_development.ini --config nose_cover.cfg
.. _agiv: http://www.agiv.be
.. _tox: http://tox.testrun.org
0.3.5 (02-09-2014)
------------------
- Fix hardcoded url in client.py. (#25)
0.3.4 (07-05-2014)
------------------
- Optimise lazy loading of capakey Gemeente. (#21)
- Optimise lazy loading of capakey Afdeling. (#22)
- General lazy loading optimisations.
- Some slight changes to CRAB lazy loading. (#24)
0.3.3 (02-05-2014)
------------------
- Added some debugging calls to allow an implementing application to track what
calls are being made.
0.3.2 (07-04-2014)
------------------
- A :class:`crabpy.gateway.crab.Gebouw` loaded through the
:meth:`crabpy.gateway.crab.CrabGateway.get_gebouw_by_id` was not passed a
:class:`crabpy.gateway.crab.CrabGateway`. (#15)
- Always load a full :class:`crabpy.gateway.crab.Metadata` object when returning
from a get*_by_id method. (#13)
- Add a `wegobjecten` property to a :class:`crabpy.gateway.crab.Straat`. (#17)
- Add a `wegsegmenten` property to a :class:`crabpy.gateway.crab.Straat`. (#18)
- Added support for `Coveralls <https://coveralls.io>`_. (#16)
0.3.1 (17-03-2014)
------------------
- Fixed a bug with lazy loading a Perceel's capatype or cashkey. (#8)
- Removes duplicates from a list of gemeentes as returned by CRAB. (#10)
- Removed loading a Gemeente with an afdeling to speed up certain queries. (#7)
- Removed a few unneeded requests in the capakey gateway when working with
Gemeente.id or Afdeling.id.
- Fixed printing of objects through the __str__ method on python 2.7. (#9)
- Adapted examples for python 3 print. (#11)
0.3.0 (12-03-2014)
------------------
- Added a :class:`Gateway <crabpy.gateway.crab.CrabGateway>` for the
Crab webservice.
- Added caching to the Crab Gateway using
`Dogpile <https://bitbucket.org/zzzeek/dogpile.cache>`_
0.2.1 (21-02-2014)
------------------
- Document how to connect to the services through a proxy.
- Fix an incomplete release.
0.2.0 (03-12-2013)
------------------
- Added a :class:`Gateway <crabpy.gateway.capakey.CapakeyGateway>` for the
Capakey webservice.
- Added caching to the Capakey Gateway using
`Dogpile <https://bitbucket.org/zzzeek/dogpile.cache>`_
- Better test coverage. Ability to skip integration tests.
- Added some documentation.
- Removed a dependency for resolving UsernameDigestTokens. This in term removed
the original suds from the dependency chain.
- Due to removing those dependencies, compatibility with Python 3.2 and 3.3 is
now present.
0.1.0 (25-10-2013)
------------------
- Initial release
- A working client for the `CRAB webservice <http://www.agiv.be/gis/diensten/?catid=156>`_.
- A working client for the `CapaKey webservice <http://www.agiv.be/gis/diensten/?catid=138>`_.
======
This library provides access to the CRAB and CAPAKEY webservices operated by
the AGIV. Because connecting to these SOAP services from python can be somewhat
complicated, this library makes it easier.
.. image:: https://travis-ci.org/OnroerendErfgoed/crabpy.png?branch=master
:target: https://travis-ci.org/OnroerendErfgoed/crabpy
.. image:: https://badge.fury.io/py/crabpy.png
:target: http://badge.fury.io/py/crabpy
.. image:: https://coveralls.io/repos/OnroerendErfgoed/crabpy/badge.png?branch=master
:target: https://coveralls.io/r/OnroerendErfgoed/crabpy?branch=master
Using the CRAB webservice
-------------------------
Recently, the CRAB service has become public. The need to authenticate has been
removed, making it a whole lot easier to connect.
.. code-block:: python
from crabpy.client import crab_factory
crab = crab_factory()
res = crab.service.ListGemeentenByGewestId(1)
print res
Using the CAPAKEY webservice
----------------------------
This service does still require authentication. This requires a valid account
from agiv_. Because the authentication also requires some extra WS-Addressing
headers, a utility function has been provided to make life easier.
.. code-block:: python
from crabpy.client import capakey_factory, capakey_request
capakey = capakey_factory(
user='USER',
password='PASSWORD'
)
res = capakey_request(capakey, 'ListAdmGemeenten', 1)
print res
Using the CAPAKEY gateway
-------------------------
To make life easier and capakey more pythonic, we've also implemented a gateway
that abstracts some more of the service and provides richer objects as responses.
.. code-block:: python
from crabpy.client import capakey_factory
from crabpy.gateway.capakey import CapakeyGateway
capakey = capakey_factory(
user='USER',
password='PASSWORD'
)
g = CapakeyGateway(capakey)
res = g.list_gemeenten()
print res
See the examples folder for some more sample code.
Development
-----------
Crabpy is still in alpha development. Currently we're just happy to have gotten
a SOAP service working in python.
We try to cover as much code as we can with unit tests. You can run them using
tox_ or directly through nose:
.. code-block:: bash
$ tox
# No coverage
$ nosetests
# Coverage
$ nosetests --config nose_cover.cfg
If you have access to the capakey service, you can enter your credentials in
the `nose_development.ini` file and use that as a test config.
.. code-block:: bash
# Integration tests with nose but no coverage
$ nosetests --tc-file nose_development.ini
# Integration tests with nose and coverage
$ nosetests --tc-file nose_development.ini --config nose_cover.cfg
.. _agiv: http://www.agiv.be
.. _tox: http://tox.testrun.org
0.3.5 (02-09-2014)
------------------
- Fix hardcoded url in client.py. (#25)
0.3.4 (07-05-2014)
------------------
- Optimise lazy loading of capakey Gemeente. (#21)
- Optimise lazy loading of capakey Afdeling. (#22)
- General lazy loading optimisations.
- Some slight changes to CRAB lazy loading. (#24)
0.3.3 (02-05-2014)
------------------
- Added some debugging calls to allow an implementing application to track what
calls are being made.
0.3.2 (07-04-2014)
------------------
- A :class:`crabpy.gateway.crab.Gebouw` loaded through the
:meth:`crabpy.gateway.crab.CrabGateway.get_gebouw_by_id` was not passed a
:class:`crabpy.gateway.crab.CrabGateway`. (#15)
- Always load a full :class:`crabpy.gateway.crab.Metadata` object when returning
from a get*_by_id method. (#13)
- Add a `wegobjecten` property to a :class:`crabpy.gateway.crab.Straat`. (#17)
- Add a `wegsegmenten` property to a :class:`crabpy.gateway.crab.Straat`. (#18)
- Added support for `Coveralls <https://coveralls.io>`_. (#16)
0.3.1 (17-03-2014)
------------------
- Fixed a bug with lazy loading a Perceel's capatype or cashkey. (#8)
- Removes duplicates from a list of gemeentes as returned by CRAB. (#10)
- Removed loading a Gemeente with an afdeling to speed up certain queries. (#7)
- Removed a few unneeded requests in the capakey gateway when working with
Gemeente.id or Afdeling.id.
- Fixed printing of objects through the __str__ method on python 2.7. (#9)
- Adapted examples for python 3 print. (#11)
0.3.0 (12-03-2014)
------------------
- Added a :class:`Gateway <crabpy.gateway.crab.CrabGateway>` for the
Crab webservice.
- Added caching to the Crab Gateway using
`Dogpile <https://bitbucket.org/zzzeek/dogpile.cache>`_
0.2.1 (21-02-2014)
------------------
- Document how to connect to the services through a proxy.
- Fix an incomplete release.
0.2.0 (03-12-2013)
------------------
- Added a :class:`Gateway <crabpy.gateway.capakey.CapakeyGateway>` for the
Capakey webservice.
- Added caching to the Capakey Gateway using
`Dogpile <https://bitbucket.org/zzzeek/dogpile.cache>`_
- Better test coverage. Ability to skip integration tests.
- Added some documentation.
- Removed a dependency for resolving UsernameDigestTokens. This in term removed
the original suds from the dependency chain.
- Due to removing those dependencies, compatibility with Python 3.2 and 3.3 is
now present.
0.1.0 (25-10-2013)
------------------
- Initial release
- A working client for the `CRAB webservice <http://www.agiv.be/gis/diensten/?catid=156>`_.
- A working client for the `CapaKey webservice <http://www.agiv.be/gis/diensten/?catid=138>`_.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
crabpy-0.3.5.tar.gz
(29.0 kB
view details)
File details
Details for the file crabpy-0.3.5.tar.gz
.
File metadata
- Download URL: crabpy-0.3.5.tar.gz
- Upload date:
- Size: 29.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9382b323be8685eb2f9aece8b4ae978592cd6599949b69b4b9b81d14e984262b |
|
MD5 | b6c907593758c8837051d5e9c6c881cd |
|
BLAKE2b-256 | 3c0f64b2dccf4d2de0b6f2489f57609f2f1511237909f16c1abeb2b4d01b357e |