{"action":"created","comment":{"url":"https://api.github.com/repos/airware/buzzard/pulls/comments/209268352","pull_request_review_id":145252587,"id":209268352,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwOTI2ODM1Mg==","diff_hunk":"@@ -0,0 +1,117 @@\n+from osgeo import osr\n+\n+from buzzard import _tools\n+\n+class AProxy(object):\n+    \"\"\"Base abstract class defining the common behavior of all sources\"\"\"","path":"buzzard/_a_proxy.py","position":6,"original_position":6,"commit_id":"fbcf8c3369d043d2b3726faccc8320b43e94e7dc","original_commit_id":"406d552b4a3223b1687eda93eed6ae1815c4f970","user":{"login":"Ngoguey42","id":9285880,"node_id":"MDQ6VXNlcjkyODU4ODA=","avatar_url":"https://avatars1.githubusercontent.com/u/9285880?v=4","gravatar_id":"","url":"https://api.github.com/users/Ngoguey42","html_url":"https://github.com/Ngoguey42","followers_url":"https://api.github.com/users/Ngoguey42/followers","following_url":"https://api.github.com/users/Ngoguey42/following{/other_user}","gists_url":"https://api.github.com/users/Ngoguey42/gists{/gist_id}","starred_url":"https://api.github.com/users/Ngoguey42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ngoguey42/subscriptions","organizations_url":"https://api.github.com/users/Ngoguey42/orgs","repos_url":"https://api.github.com/users/Ngoguey42/repos","events_url":"https://api.github.com/users/Ngoguey42/events{/privacy}","received_events_url":"https://api.github.com/users/Ngoguey42/received_events","type":"User","site_admin":false},"body":"The intent of this class is to never instantiate it directly. That is right that there is nothing that prevents it, but since all proxy classes are instanciated by the `DataSource` and not by the buzzard user this should not be a problem. Right?","created_at":"2018-08-10T13:59:23Z","updated_at":"2018-08-10T13:59:24Z","html_url":"https://github.com/airware/buzzard/pull/36#discussion_r209268352","pull_request_url":"https://api.github.com/repos/airware/buzzard/pulls/36","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/airware/buzzard/pulls/comments/209268352"},"html":{"href":"https://github.com/airware/buzzard/pull/36#discussion_r209268352"},"pull_request":{"href":"https://api.github.com/repos/airware/buzzard/pulls/36"}},"in_reply_to_id":207934724},"pull_request":{"url":"https://api.github.com/repos/airware/buzzard/pulls/36","id":205086166,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA1MDg2MTY2","html_url":"https://github.com/airware/buzzard/pull/36","diff_url":"https://github.com/airware/buzzard/pull/36.diff","patch_url":"https://github.com/airware/buzzard/pull/36.patch","issue_url":"https://api.github.com/repos/airware/buzzard/issues/36","number":36,"state":"open","locked":false,"title":"Rewrite most classes (version 0.5.0b0)","user":{"login":"azarz","id":18074428,"node_id":"MDQ6VXNlcjE4MDc0NDI4","avatar_url":"https://avatars0.githubusercontent.com/u/18074428?v=4","gravatar_id":"","url":"https://api.github.com/users/azarz","html_url":"https://github.com/azarz","followers_url":"https://api.github.com/users/azarz/followers","following_url":"https://api.github.com/users/azarz/following{/other_user}","gists_url":"https://api.github.com/users/azarz/gists{/gist_id}","starred_url":"https://api.github.com/users/azarz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azarz/subscriptions","organizations_url":"https://api.github.com/users/azarz/orgs","repos_url":"https://api.github.com/users/azarz/repos","events_url":"https://api.github.com/users/azarz/events{/privacy}","received_events_url":"https://api.github.com/users/azarz/received_events","type":"User","site_admin":false},"body":"Welcome to the buzzard `0.5.0b0` pull request. This is a prerelease version that is the first step towards version `0.5.0` that will include most of the previous features plus the new raster recipes that can be used to create computation graphs of rasters, processed tile by tile with disk caching, parallelization and backpressure prevention.\r\n\r\nThis version includes a full rewriting of the DataSource class and all related classes.\r\n\r\n# Public changes\r\n### No python 2.7 support\r\nNo more support of `python 2.7` for new features. The oldest supported version is now `python 3.4` from march 2014, and the lastest is `python 3.7` from june 2018. buzzard `0.4.4` can still be used for python 2.7.\r\n\r\n### New features\r\n- Add wrapper for numpy arrays as rasters in the `DataSource`\r\n  + `DataSource.wrap_numpy_raster()`\r\n  + `DataSource.awrap_numpy_raster()`\r\n\r\n- Add top-level functions to open proxies with implicit `DataSource` instanciation\r\n  + `buzz.open_raster()`\r\n  + `buzz.open_vector()`\r\n  + `buzz.wrap_numpy_raster()`\r\n\r\n### Methods/functions/properties updates\r\n- Remove `DataSource.copy()`\r\n- Remove `DataSource.__reduce__()` (cannot pickle a `DataSource` anymore)\r\n- Remove `DataSource.create_recipe_raster` (will take another form)\r\n- Remove `DataSource.acreate_recipe_raster` (will take another form)\r\n- Remove `Vector.delete_layer()`\r\n- Add `DataSource.wrap_numpy_raster()`\r\n- Add `DataSource.awrap_numpy_raster()`\r\n- Add `DataSource.__len__`\r\n- Add `buzz.open_raster()`\r\n- Add `buzz.open_vector()`\r\n- Add `buzz.wrap_numpy_raster()`\r\n- Rename `Proxy.activated`  to `Proxy.active` \r\n- Add `Proxy.active_count`\r\n- Add `DataSource.active_count`\r\n\r\n### Bug fixes\r\n- The `bounds_stored` property of `Vector` now returns the proper `bounds` and not an `extent`\r\n\r\n### Parameters update\r\n- Remove `Raster.get_data@op` parameter\r\n- Remove `Raster.get_data@mask` parameter\r\n- Rename  `Raster.get_data@nodata` to `dst_nodata` (with backward compatibility)\r\n- Rename `DataSource@max_activated` to `DataSource@max_active` (with backward compatibility)\r\n\r\n### Other changes\r\n- Overhaul of Raster and Vector tests\r\n- Improve `Raster.get_data` and  `Raster.set_data` resampling code, results might not be exactly the same.\r\n\r\n# Private Changes\r\n### Classes update\r\n#### Separation between `Facade` and `Back` classes\r\nAs you can see in the detailed class change log below, there are 2 types of new classes, some without a prefix (`facades`) and `back` classes. This separation exist in order to allow garbage collection to be made, even if the `DataSource` instanciates a scheduler on a separate thread. The `facade` classes are manipulated by the user and have pointers towards the `back` classes, and the later have no references to the `facades`. This way, when the `facade` are collected, the `back` are collected too.\r\nThis separation also allows us to perform parameter checking only once in the `facade` classes, and then call the appropriate `back` implemenation with [dynamic dispatch](https://en.wikipedia.org/wiki/Dynamic_dispatch).\r\n\r\n#### Inheritance pattern\r\nThe `facade` and `back` classes follow this inheritance pattern:\r\n+ `AProxy`: base class for all proxies\r\n+ `AProxy` <= `AStored`: subclasses implement a `mode` (`r` or `w`)\r\n+ `AProxy` <= `AStored` <= `AEmissary`: subclasses implement a `driver` (including a path and open options)\r\n+ `AProxy` <= `AStored` <= `AEmissary` <= `APooledEmissary`: Emissaries that can be activated and deactivated (often, if not always, translates in\r\nto having a file descriptor)\r\n\r\nEach of these inheritance steps have raster and vector subclasses. E.g., there is a `AEmissaryRaster` class which inherits from both `AEmissary` and `AStoredRaster`.\r\n\r\nHere is the UML class diagram:\r\n![classes-v0 5 0dev1](https://user-images.githubusercontent.com/18074428/43709283-af63f200-996c-11e8-988e-6409fdefe8e4.png)\r\n\r\n#####  Removal\r\n- Remove `class DataSource(_datasource_tools.DataSourceToolsMixin, DataSourceConversionsMixin)`\r\n- Remove `class DataSourceConversionsMixin(object)`\r\n- Remove `class DataSourceToolsMixin(object)`\r\n- Remove `class Proxy(object)`\r\n- Remove `class Raster(Proxy, RasterGetSetMixin, RasterUtilsMixin, RemapMixin)`\r\n- Remove `class RasterGetSetMixin(object)`\r\n- Remove `class RasterRecipe(Raster)`\r\n- Remove `class RasterStored(Raster)`\r\n- Remove `class RasterUtilsMixin(object)`\r\n- Remove `class RemapMixin(object)`\r\n- Remove `class Vector(Proxy, VectorUtilsMixin, VectorGetSetMixin)`\r\n- Remove `class VectorGetSetMixin(object)`\r\n- Remove `class VectorUtilsMixin(object)`\r\n\r\n##### Additions - DataSource\r\n- Add `class DataSource(DataSourceRegisterMixin)`\r\n- Add `class DataSourceRegisterMixin(object)`\r\n\r\n##### Additions - DataSource (backend)\r\n- Add `class BackDataSource(BackDataSourceConversionsMixin, BackDataSourceActivationPoolMixin)`\r\n- Add `class BackDataSourceActivationPoolMixin(object)`\r\n- Add `class BackDataSourceConversionsMixin(object)`\r\n\r\n##### Additions - Concrete proxies\r\n- Add `class GDALFileRaster(APooledEmissaryRaster)`\r\n- Add `class GDALMemRaster(AEmissaryRaster)`\r\n- Add `class NumpyRaster(AStoredRaster)`\r\n- Add `class GDALFileVector(APooledEmissaryVector)`\r\n- Add `class GDALMemoryVector(AEmissaryVector)`\r\n\r\n##### Additions - Concrete proxies (backend)\r\n- Add `class BackGDALFileRaster(ABackPooledEmissaryRaster, ABackGDALRaster)`\r\n- Add `class BackGDALMemRaster(ABackEmissaryRaster, ABackGDALRaster)`\r\n- Add `class BackNumpyRaster(ABackStoredRaster)`\r\n- Add `class BackGDALFileVector(ABackPooledEmissaryVector, ABackGDALVector)`\r\n- Add `class BackGDALMemoryVector(ABackEmissaryVector, ABackGDALVector)`\r\n\r\n##### Additions - Abstract proxies\r\n- Add `class AProxy(object)`\r\n- Add `class AStored(AProxy)`\r\n- Add `class AEmissary(AStored)`\r\n- Add `class APooledEmissary(AEmissary)`\r\n<BR>\r\n\r\n- Add `class AProxyRaster(AProxy)`\r\n- Add `class AStoredRaster(AStored, AProxyRaster)`\r\n- Add `class AEmissaryRaster(AEmissary, AStoredRaster)`\r\n- Add `class APooledEmissaryRaster(APooledEmissary, AEmissaryRaster)`\r\n<BR>\r\n\r\n- Add `class AProxyVector(AProxy)`\r\n- Add `class AStoredVector(AStored, AProxyVector)`\r\n- Add `class AEmissaryVector(AEmissary, AStoredVector)`\r\n- Add `class APooledEmissaryVector(APooledEmissary, AEmissaryVector)`\r\n\r\n##### Additions - Abstract proxies (backend)\r\n- Add `class ABackProxy(object)`\r\n- Add `class ABackStored(ABackProxy)`\r\n- Add `class ABackEmissary(ABackStored)`\r\n- Add `class ABackPooledEmissary(ABackEmissary)`\r\n<BR>\r\n\r\n- Add `class ABackProxyRaster(ABackProxy, ABackProxyRasterRemapMixin)`\r\n- Add `class ABackProxyRasterRemapMixin(object)`\r\n- Add `class ABackStoredRaster(ABackStored, ABackProxyRaster)`\r\n- Add `class ABackEmissaryRaster(ABackEmissary, ABackStoredRaster)`\r\n- Add `class ABackPooledEmissaryRaster(ABackPooledEmissary, ABackEmissaryRaster)`\r\n- Add `class ABackGDALRaster(ABackProxyRaster)`\r\n<BR>\r\n\r\n- Add `class ABackProxyVector(ABackProxy)`\r\n- Add `class ABackStoredVector(ABackStored, ABackProxyVector)`\r\n- Add `class ABackEmissaryVector(ABackEmissary, ABackStoredVector)`\r\n- Add `class ABackPooledEmissaryVector(ABackPooledEmissary, ABackEmissaryVector)`\r\n- Add `class ABackGDALVector(ABackProxyVector)`\r\n\r\n##### Additions - Other\r\n- Add `class MultiOrderedDict(object)`","created_at":"2018-07-31T11:50:50Z","updated_at":"2018-08-10T13:59:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b5333a7ced94f176368fb3898528f88a1b5dc92f","assignee":{"login":"Ngoguey42","id":9285880,"node_id":"MDQ6VXNlcjkyODU4ODA=","avatar_url":"https://avatars1.githubusercontent.com/u/9285880?v=4","gravatar_id":"","url":"https://api.github.com/users/Ngoguey42","html_url":"https://github.com/Ngoguey42","followers_url":"https://api.github.com/users/Ngoguey42/followers","following_url":"https://api.github.com/users/Ngoguey42/following{/other_user}","gists_url":"https://api.github.com/users/Ngoguey42/gists{/gist_id}","starred_url":"https://api.github.com/users/Ngoguey42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ngoguey42/subscriptions","organizations_url":"https://api.github.com/users/Ngoguey42/orgs","repos_url":"https://api.github.com/users/Ngoguey42/repos","events_url":"https://api.github.com/users/Ngoguey42/events{/privacy}","received_events_url":"https://api.github.com/users/Ngoguey42/received_events","type":"User","site_admin":false},"assignees":[{"login":"Ngoguey42","id":9285880,"node_id":"MDQ6VXNlcjkyODU4ODA=","avatar_url":"https://avatars1.githubusercontent.com/u/9285880?v=4","gravatar_id":"","url":"https://api.github.com/users/Ngoguey42","html_url":"https://github.com/Ngoguey42","followers_url":"https://api.github.com/users/Ngoguey42/followers","following_url":"https://api.github.com/users/Ngoguey42/following{/other_user}","gists_url":"https://api.github.com/users/Ngoguey42/gists{/gist_id}","starred_url":"https://api.github.com/users/Ngoguey42/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ngoguey42/subscriptions","organizations_url":"https://api.github.com/users/Ngoguey42/orgs","repos_url":"https://api.github.com/users/Ngoguey42/repos","events_url":"https://api.github.com/users/Ngoguey42/events{/privacy}","received_events_url":"https://api.github.com/users/Ngoguey42/received_events","type":"User","site_admin":false},{"login":"azarz","id":18074428,"node_id":"MDQ6VXNlcjE4MDc0NDI4","avatar_url":"https://avatars0.githubusercontent.com/u/18074428?v=4","gravatar_id":"","url":"https://api.github.com/users/azarz","html_url":"https://github.com/azarz","followers_url":"https://api.github.com/users/azarz/followers","following_url":"https://api.github.com/users/azarz/following{/other_user}","gists_url":"https://api.github.com/users/azarz/gists{/gist_id}","starred_url":"https://api.github.com/users/azarz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/azarz/subscriptions","organizations_url":"https://api.github.com/users/azarz/orgs","repos_url":"https://api.github.com/users/azarz/repos","events_url":"https://api.github.com/users/azarz/events{/privacy}","received_events_url":"https://api.github.com/users/azarz/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"HerveNivon","id":1057302,"node_id":"MDQ6VXNlcjEwNTczMDI=","avatar_url":"https://avatars0.githubusercontent.com/u/1057302?v=4","gravatar_id":"","url":"https://api.github.com/users/HerveNivon","html_url":"https://github.com/HerveNivon","followers_url":"https://api.github.com/users/HerveNivon/followers","following_url":"https://api.github.com/users/HerveNivon/following{/other_user}","gists_url":"https://api.github.com/users/HerveNivon/gists{/gist_id}","starred_url":"https://api.github.com/users/HerveNivon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HerveNivon/subscriptions","organizations_url":"https://api.github.com/users/HerveNivon/orgs","repos_url":"https://api.github.com/users/HerveNivon/repos","events_url":"https://api.github.com/users/HerveNivon/events{/privacy}","received_events_url":"https://api.github.com/users/HerveNivon/received_events","type":"User","site_admin":false},{"login":"ishivvers","id":1340584,"node_id":"MDQ6VXNlcjEzNDA1ODQ=","avatar_url":"https://avatars2.githubusercontent.com/u/1340584?v=4","gravatar_id":"","url":"https://api.github.com/users/ishivvers","html_url":"https://github.com/ishivvers","followers_url":"https://api.github.com/users/ishivvers/followers","following_url":"https://api.github.com/users/ishivvers/following{/other_user}","gists_url":"https://api.github.com/users/ishivvers/gists{/gist_id}","starred_url":"https://api.github.com/users/ishivvers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ishivvers/subscriptions","organizations_url":"https://api.github.com/users/ishivvers/orgs","repos_url":"https://api.github.com/users/ishivvers/repos","events_url":"https://api.github.com/users/ishivvers/events{/privacy}","received_events_url":"https://api.github.com/users/ishivvers/received_events","type":"User","site_admin":false},{"login":"Toz3wm","id":10962198,"node_id":"MDQ6VXNlcjEwOTYyMTk4","avatar_url":"https://avatars3.githubusercontent.com/u/10962198?v=4","gravatar_id":"","url":"https://api.github.com/users/Toz3wm","html_url":"https://github.com/Toz3wm","followers_url":"https://api.github.com/users/Toz3wm/followers","following_url":"https://api.github.com/users/Toz3wm/following{/other_user}","gists_url":"https://api.github.com/users/Toz3wm/gists{/gist_id}","starred_url":"https://api.github.com/users/Toz3wm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Toz3wm/subscriptions","organizations_url":"https://api.github.com/users/Toz3wm/orgs","repos_url":"https://api.github.com/users/Toz3wm/repos","events_url":"https://api.github.com/users/Toz3wm/events{/privacy}","received_events_url":"https://api.github.com/users/Toz3wm/received_events","type":"User","site_admin":false},{"login":"AliceSp","id":18736146,"node_id":"MDQ6VXNlcjE4NzM2MTQ2","avatar_url":"https://avatars3.githubusercontent.com/u/18736146?v=4","gravatar_id":"","url":"https://api.github.com/users/AliceSp","html_url":"https://github.com/AliceSp","followers_url":"https://api.github.com/users/AliceSp/followers","following_url":"https://api.github.com/users/AliceSp/following{/other_user}","gists_url":"https://api.github.com/users/AliceSp/gists{/gist_id}","starred_url":"https://api.github.com/users/AliceSp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AliceSp/subscriptions","organizations_url":"https://api.github.com/users/AliceSp/orgs","repos_url":"https://api.github.com/users/AliceSp/repos","events_url":"https://api.github.com/users/AliceSp/events{/privacy}","received_events_url":"https://api.github.com/users/AliceSp/received_events","type":"User","site_admin":false},{"login":"jieren172","id":25177782,"node_id":"MDQ6VXNlcjI1MTc3Nzgy","avatar_url":"https://avatars0.githubusercontent.com/u/25177782?v=4","gravatar_id":"","url":"https://api.github.com/users/jieren172","html_url":"https://github.com/jieren172","followers_url":"https://api.github.com/users/jieren172/followers","following_url":"https://api.github.com/users/jieren172/following{/other_user}","gists_url":"https://api.github.com/users/jieren172/gists{/gist_id}","starred_url":"https://api.github.com/users/jieren172/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jieren172/subscriptions","organizations_url":"https://api.github.com/users/jieren172/orgs","repos_url":"https://api.github.com/users/jieren172/repos","events_url":"https://api.github.com/users/jieren172/events{/privacy}","received_events_url":"https://api.github.com/users/jieren172/received_events","type":"User","site_admin":false},{"login":"j-bd","id":38285494,"node_id":"MDQ6VXNlcjM4Mjg1NDk0","avatar_url":"https://avatars3.githubusercontent.com/u/38285494?v=4","gravatar_id":"","url":"https://api.github.com/users/j-bd","html_url":"https://github.com/j-bd","followers_url":"https://api.github.com/users/j-bd/followers","following_url":"https://api.github.com/users/j-bd/following{/other_user}","gists_url":"https://api.github.com/users/j-bd/gists{/gist_id}","starred_url":"https://api.github.com/users/j-bd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/j-bd/subscriptions","organizations_url":"https://api.github.com/users/j-bd/orgs","repos_url":"https://api.github.com/users/j-bd/repos","events_url":"https://api.github.com/users/j-bd/events{/privacy}","received_events_url":"https://api.github.com/users/j-bd/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/airware/buzzard/pulls/36/commits","review_comments_url":"https://api.github.com/repos/airware/buzzard/pulls/36/comments","review_comment_url":"https://api.github.com/repos/airware/buzzard/pulls/comments{/number}","comments_url":"https://api.github.com/repos/airware/buzzard/issues/36/comments","statuses_url":"https://api.github.com/repos/airware/buzzard/statuses/fbcf8c3369d043d2b3726faccc8320b43e94e7dc","head":{"label":"airware:v0.5","ref":"v0.5","sha":"fbcf8c3369d043d2b3726faccc8320b43e94e7dc","user":{"login":"airware","id":10148070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwMTQ4MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/10148070?v=4","gravatar_id":"","url":"https://api.github.com/users/airware","html_url":"https://github.com/airware","followers_url":"https://api.github.com/users/airware/followers","following_url":"https://api.github.com/users/airware/following{/other_user}","gists_url":"https://api.github.com/users/airware/gists{/gist_id}","starred_url":"https://api.github.com/users/airware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airware/subscriptions","organizations_url":"https://api.github.com/users/airware/orgs","repos_url":"https://api.github.com/users/airware/repos","events_url":"https://api.github.com/users/airware/events{/privacy}","received_events_url":"https://api.github.com/users/airware/received_events","type":"Organization","site_admin":false},"repo":{"id":104723854,"node_id":"MDEwOlJlcG9zaXRvcnkxMDQ3MjM4NTQ=","name":"buzzard","full_name":"airware/buzzard","owner":{"login":"airware","id":10148070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwMTQ4MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/10148070?v=4","gravatar_id":"","url":"https://api.github.com/users/airware","html_url":"https://github.com/airware","followers_url":"https://api.github.com/users/airware/followers","following_url":"https://api.github.com/users/airware/following{/other_user}","gists_url":"https://api.github.com/users/airware/gists{/gist_id}","starred_url":"https://api.github.com/users/airware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airware/subscriptions","organizations_url":"https://api.github.com/users/airware/orgs","repos_url":"https://api.github.com/users/airware/repos","events_url":"https://api.github.com/users/airware/events{/privacy}","received_events_url":"https://api.github.com/users/airware/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/airware/buzzard","description":"Geofiles management can be great. No joke! 🗺","fork":false,"url":"https://api.github.com/repos/airware/buzzard","forks_url":"https://api.github.com/repos/airware/buzzard/forks","keys_url":"https://api.github.com/repos/airware/buzzard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/airware/buzzard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/airware/buzzard/teams","hooks_url":"https://api.github.com/repos/airware/buzzard/hooks","issue_events_url":"https://api.github.com/repos/airware/buzzard/issues/events{/number}","events_url":"https://api.github.com/repos/airware/buzzard/events","assignees_url":"https://api.github.com/repos/airware/buzzard/assignees{/user}","branches_url":"https://api.github.com/repos/airware/buzzard/branches{/branch}","tags_url":"https://api.github.com/repos/airware/buzzard/tags","blobs_url":"https://api.github.com/repos/airware/buzzard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/airware/buzzard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/airware/buzzard/git/refs{/sha}","trees_url":"https://api.github.com/repos/airware/buzzard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/airware/buzzard/statuses/{sha}","languages_url":"https://api.github.com/repos/airware/buzzard/languages","stargazers_url":"https://api.github.com/repos/airware/buzzard/stargazers","contributors_url":"https://api.github.com/repos/airware/buzzard/contributors","subscribers_url":"https://api.github.com/repos/airware/buzzard/subscribers","subscription_url":"https://api.github.com/repos/airware/buzzard/subscription","commits_url":"https://api.github.com/repos/airware/buzzard/commits{/sha}","git_commits_url":"https://api.github.com/repos/airware/buzzard/git/commits{/sha}","comments_url":"https://api.github.com/repos/airware/buzzard/comments{/number}","issue_comment_url":"https://api.github.com/repos/airware/buzzard/issues/comments{/number}","contents_url":"https://api.github.com/repos/airware/buzzard/contents/{+path}","compare_url":"https://api.github.com/repos/airware/buzzard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/airware/buzzard/merges","archive_url":"https://api.github.com/repos/airware/buzzard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/airware/buzzard/downloads","issues_url":"https://api.github.com/repos/airware/buzzard/issues{/number}","pulls_url":"https://api.github.com/repos/airware/buzzard/pulls{/number}","milestones_url":"https://api.github.com/repos/airware/buzzard/milestones{/number}","notifications_url":"https://api.github.com/repos/airware/buzzard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/airware/buzzard/labels{/name}","releases_url":"https://api.github.com/repos/airware/buzzard/releases{/id}","deployments_url":"https://api.github.com/repos/airware/buzzard/deployments","created_at":"2017-09-25T08:33:39Z","updated_at":"2018-07-17T14:07:47Z","pushed_at":"2018-08-10T12:02:52Z","git_url":"git://github.com/airware/buzzard.git","ssh_url":"git@github.com:airware/buzzard.git","clone_url":"https://github.com/airware/buzzard.git","svn_url":"https://github.com/airware/buzzard","homepage":"","size":3138,"stargazers_count":11,"watchers_count":11,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":5,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":4,"open_issues":5,"watchers":11,"default_branch":"master"}},"base":{"label":"airware:master","ref":"master","sha":"3b20fbf98af724c532515d310ba7f3902f131fa3","user":{"login":"airware","id":10148070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwMTQ4MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/10148070?v=4","gravatar_id":"","url":"https://api.github.com/users/airware","html_url":"https://github.com/airware","followers_url":"https://api.github.com/users/airware/followers","following_url":"https://api.github.com/users/airware/following{/other_user}","gists_url":"https://api.github.com/users/airware/gists{/gist_id}","starred_url":"https://api.github.com/users/airware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airware/subscriptions","organizations_url":"https://api.github.com/users/airware/orgs","repos_url":"https://api.github.com/users/airware/repos","events_url":"https://api.github.com/users/airware/events{/privacy}","received_events_url":"https://api.github.com/users/airware/received_events","type":"Organization","site_admin":false},"repo":{"id":104723854,"node_id":"MDEwOlJlcG9zaXRvcnkxMDQ3MjM4NTQ=","name":"buzzard","full_name":"airware/buzzard","owner":{"login":"airware","id":10148070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwMTQ4MDcw","avatar_url":"https://avatars0.githubusercontent.com/u/10148070?v=4","gravatar_id":"","url":"https://api.github.com/users/airware","html_url":"https://github.com/airware","followers_url":"https://api.github.com/users/airware/followers","following_url":"https://api.github.com/users/airware/following{/other_user}","gists_url":"https://api.github.com/users/airware/gists{/gist_id}","starred_url":"https://api.github.com/users/airware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airware/subscriptions","organizations_url":"https://api.github.com/users/airware/orgs","repos_url":"https://api.github.com/users/airware/repos","events_url":"https://api.github.com/users/airware/events{/privacy}","received_events_url":"https://api.github.com/users/airware/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/airware/buzzard","description":"Geofiles management can be great. No joke! 🗺","fork":false,"url":"https://api.github.com/repos/airware/buzzard","forks_url":"https://api.github.com/repos/airware/buzzard/forks","keys_url":"https://api.github.com/repos/airware/buzzard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/airware/buzzard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/airware/buzzard/teams","hooks_url":"https://api.github.com/repos/airware/buzzard/hooks","issue_events_url":"https://api.github.com/repos/airware/buzzard/issues/events{/number}","events_url":"https://api.github.com/repos/airware/buzzard/events","assignees_url":"https://api.github.com/repos/airware/buzzard/assignees{/user}","branches_url":"https://api.github.com/repos/airware/buzzard/branches{/branch}","tags_url":"https://api.github.com/repos/airware/buzzard/tags","blobs_url":"https://api.github.com/repos/airware/buzzard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/airware/buzzard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/airware/buzzard/git/refs{/sha}","trees_url":"https://api.github.com/repos/airware/buzzard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/airware/buzzard/statuses/{sha}","languages_url":"https://api.github.com/repos/airware/buzzard/languages","stargazers_url":"https://api.github.com/repos/airware/buzzard/stargazers","contributors_url":"https://api.github.com/repos/airware/buzzard/contributors","subscribers_url":"https://api.github.com/repos/airware/buzzard/subscribers","subscription_url":"https://api.github.com/repos/airware/buzzard/subscription","commits_url":"https://api.github.com/repos/airware/buzzard/commits{/sha}","git_commits_url":"https://api.github.com/repos/airware/buzzard/git/commits{/sha}","comments_url":"https://api.github.com/repos/airware/buzzard/comments{/number}","issue_comment_url":"https://api.github.com/repos/airware/buzzard/issues/comments{/number}","contents_url":"https://api.github.com/repos/airware/buzzard/contents/{+path}","compare_url":"https://api.github.com/repos/airware/buzzard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/airware/buzzard/merges","archive_url":"https://api.github.com/repos/airware/buzzard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/airware/buzzard/downloads","issues_url":"https://api.github.com/repos/airware/buzzard/issues{/number}","pulls_url":"https://api.github.com/repos/airware/buzzard/pulls{/number}","milestones_url":"https://api.github.com/repos/airware/buzzard/milestones{/number}","notifications_url":"https://api.github.com/repos/airware/buzzard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/airware/buzzard/labels{/name}","releases_url":"https://api.github.com/repos/airware/buzzard/releases{/id}","deployments_url":"https://api.github.com/repos/airware/buzzard/deployments","created_at":"2017-09-25T08:33:39Z","updated_at":"2018-07-17T14:07:47Z","pushed_at":"2018-08-10T12:02:52Z","git_url":"git://github.com/airware/buzzard.git","ssh_url":"git@github.com:airware/buzzard.git","clone_url":"https://github.com/airware/buzzard.git","svn_url":"https://github.com/airware/buzzard","homepage":"","size":3138,"stargazers_count":11,"watchers_count":11,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":5,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":4,"open_issues":5,"watchers":11,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/airware/buzzard/pulls/36"},"html":{"href":"https://github.com/airware/buzzard/pull/36"},"issue":{"href":"https://api.github.com/repos/airware/buzzard/issues/36"},"comments":{"href":"https://api.github.com/repos/airware/buzzard/issues/36/comments"},"review_comments":{"href":"https://api.github.com/repos/airware/buzzard/pulls/36/comments"},"review_comment":{"href":"https://api.github.com/repos/airware/buzzard/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/airware/buzzard/pulls/36/commits"},"statuses":{"href":"https://api.github.com/repos/airware/buzzard/statuses/fbcf8c3369d043d2b3726faccc8320b43e94e7dc"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Ngoguey42"}}