Repository: ResonantGeoData/ResonantGeoData (language: python)

Issue:
Add Python Client
Fixes #305 resolve #178

This adds an `rgdc` package, which contains an `Rgdc` class. This class is the client class, and contains all the relevant methods for interacting with RGD.

This is just some initial methods, based on #178. Hopefully what I have addresses the use cases correctly, although I'll admit I'm a bit distanced from them.

This PR does not include tests (although I would really like to add them), as that would involve spinning up a test RGD instance in CI. This presents issues regarding both feasibility (e.g. system packages), as well as performance. For now, I've decided to punt on it.


Discussion / hints:
@AlmightyYakob this is great. I see an example in the readme. It would be desired to have an example that first get a list of ids based on some filter (cloud mask, aoi) and then download these tiles. Is it possible to update your example to have these pieces? 
> @AlmightyYakob this is great. I see an example in the readme. It would be desired to have an example that first get a list of ids based on some filter (cloud mask, aoi) and then download these tiles. Is it possible to update your example to have these pieces?

What endpoint would I use to get the list of IDs? The `search` endpoint only returns SpatialEntry IDs.
SpatialEntry IDs are fine. 
This is waiting on me.

I need to add a few new endpoints to better serialize raster entries, search raster entries specifically, and a few other things

Currently there is no good route to go from the IDs returned by the search endpoint to downloading image files
In the future we want a) given AOI, b) some facet parameter, and c) data type information (raster or vector), the system generates  a list of raster entry ids (in case data type from input is raster type) or vector entry ids, then she can filter based on some criterions by looping over these ids, and finally ask a subset of ids to be downloaded to her desktop with all other metadata files. 
@AlmightyYakob, I'm wrapped up with this. Would you do a final look over at my changes and let me know when you think this is good to merge?

Fix patch:
diff --git a/rgdc/rgdc/version.py b/rgdc/rgdc/version.py
index e61a072ca..b794fd409 100644
--- a/rgdc/rgdc/version.py
+++ b/rgdc/rgdc/version.py
@@ -1,1 +1,1 @@
-__version__ = '0.1.0-client.0'
+__version__ = '0.1.0'


Test patch:
diff --git a/rgd/geodata/tests/test_client.py b/rgd/geodata/tests/test_client.py
index 106be454a..60698d202 100644
--- a/rgd/geodata/tests/test_client.py
+++ b/rgd/geodata/tests/test_client.py
@@ -4,11 +4,11 @@
 import pkg_resources
 import pytest
 
-RGDC_VERSION_REGEX = r'(\d+\.\d+\.\d+)-client\.\d+'
+RGDC_VERSION_REGEX = r'__version__ = \'(.*)\''
 
 
 @pytest.fixture
-def rgdc_base_version():
+def rgdc_version():
     base_dir = Path(__file__).parent.parent.parent.parent
     version_file = base_dir / 'rgdc' / 'rgdc' / 'version.py'
 
@@ -19,9 +19,9 @@ def rgdc_base_version():
     return version.group(1)
 
 
-def test_client_version_match(rgdc_base_version):
+def test_client_version_match(rgdc_version):
     rgd_version = next(
         pkg.version for pkg in pkg_resources.working_set if pkg.key == 'resonantgeodata'
     )
 
-    assert rgd_version == rgdc_base_version
+    assert rgd_version == rgdc_version