{"action":"created","comment":{"url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments/226802077","pull_request_review_id":166721179,"id":226802077,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNjgwMjA3Nw==","diff_hunk":"@@ -0,0 +1,419 @@\n+/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.\n+\n+Licensed under the Apache License, Version 2.0 (the \"License\");\n+you may not use this file except in compliance with the License.\n+You may obtain a copy of the License at\n+\n+    http://www.apache.org/licenses/LICENSE-2.0\n+\n+Unless required by applicable law or agreed to in writing, software\n+distributed under the License is distributed on an \"AS IS\" BASIS,\n+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+See the License for the specific language governing permissions and\n+limitations under the License.\n+==============================================================================*/\n+\n+#include <avro.h>\n+\n+#include \"tensorflow/core/framework/dataset.h\"\n+#include \"tensorflow/core/framework/common_shape_fns.h\"\n+#include \"tensorflow/core/framework/partial_tensor_shape.h\"\n+#include \"tensorflow/core/framework/shape_inference.h\"\n+#include \"tensorflow/core/framework/tensor.h\"\n+#include \"tensorflow/core/lib/core/errors.h\"\n+#include \"tensorflow/core/lib/io/buffered_inputstream.h\"\n+#include \"tensorflow/core/lib/io/inputbuffer.h\"\n+\n+// As boiler plate I used\n+// https://github.com/tensorflow/tensorflow/core/kernels/reader_dataset_ops.cc\n+// https://github.com/tensorflow/tensorflow/blob/v1.4.1/tensorflow/core/ops/dataset_ops.cc\n+// (register op)\n+\n+namespace tensorflow {\n+\n+// Register the avro record dataset operator\n+REGISTER_OP(\"AvroRecordDataset\")\n+    .Input(\"filenames: string\")\n+    .Input(\"schema: string\")\n+    .Input(\"buffer_size: int64\")\n+    .Output(\"handle: variant\")\n+    .SetIsStateful()\n+    .SetShapeFn(shape_inference::ScalarShape)\n+    .Doc(R\"doc(\n+Creates a dataset that emits the avro records from one or more files.\n+filenames: A scalar or vector containing the name(s) of the file(s) to be\n+  read.\n+schema: A string used that is used for schema resolution.\n+)doc\");\n+\n+// This class represents the avro reader options\n+class AvroReaderOptions {\n+ public:\n+  // Creates avro reader options with the given schema and buffer size.\n+  //\n+  static AvroReaderOptions CreateAvroReaderOptions(const string& schema,\n+                                                   int64 buffer_size) {\n+    AvroReaderOptions options;\n+    options.schema = schema;\n+    options.buffer_size = buffer_size;\n+    return options;\n+  }\n+  string schema;\n+  int64 buffer_size =\n+      256 * 1024;  // 256 kB as default but this can be overwritten by the user\n+};\n+\n+void AvroFileReaderDestructor(avro_file_reader_t reader) {\n+  // I don't think we need the CHECK_NOTNULL\n+  CHECK_GE(avro_file_reader_close(reader), 0);\n+}\n+\n+void AvroSchemaDestructor(avro_schema_t schema) {\n+  // Confusingly, it appears that the avro_file_reader_t creates its\n+  // own reference to this schema, so the schema is not really\n+  // \"uniquely\" owned...\n+  CHECK_GE(avro_schema_decref(schema), 0);\n+};\n+\n+void AvroValueInterfaceDestructor(avro_value_iface_t * iface)  {\n+  avro_value_iface_decref(iface);\n+}\n+\n+\n+// This reader is not thread safe\n+class SequentialAvroRecordReader {\n+ public:\n+  // Construct a sequential avro record reader\n+  //\n+  // 'file' is the random access file\n+  //\n+  // 'file_size' is the size of the file\n+  //\n+  // 'filename' is the name of the file\n+  //\n+  // 'options' are avro reader options\n+  //\n+  SequentialAvroRecordReader(RandomAccessFile* file, const uint64 file_size,\n+                             const string& filename,\n+                             const AvroReaderOptions& options =\n+                                 AvroReaderOptions())\n+    : initialized_(false),\n+      filename_(filename),\n+      file_buffer_(file_size, '\\0'),\n+      input_buffer_size_(options.buffer_size),\n+      input_buffer_(new io::InputBuffer(file, options.buffer_size)),\n+      reader_schema_str_(options.schema),\n+      file_reader_(nullptr, AvroFileReaderDestructor),\n+      reader_schema_(nullptr, AvroSchemaDestructor),\n+      writer_schema_(nullptr, AvroSchemaDestructor),\n+      p_reader_iface_(nullptr, AvroValueInterfaceDestructor),\n+      p_writer_iface_(nullptr, AvroValueInterfaceDestructor) { }\n+  virtual ~SequentialAvroRecordReader() {\n+    // Guard against clean-up of non-initialized instances\n+    if (initialized_) {\n+      avro_value_decref(&reader_value_);\n+      avro_value_decref(&writer_value_);\n+    }\n+  }\n+  // Reads the next record into the string record\n+  //\n+  // 'record' pointer to the string where to load the record in\n+  //\n+  // returns Status about this operation\n+  //\n+  Status ReadRecord(string* record) {\n+    bool at_end =\n+      avro_file_reader_read_value(file_reader_.get(), &writer_value_) != 0;\n+    // Are writer_value_ and reader_value_ aliases to the same thing???","path":"tensorflow/contrib/avro/ops/avro_record_dataset.cc","position":127,"original_position":127,"commit_id":"09a504212e2aae7d13b25ebf572c1a93f226e89f","original_commit_id":"d1be9e544357e72eb37f6adb626670f745e79a9b","user":{"login":"fraudies","id":1770877,"node_id":"MDQ6VXNlcjE3NzA4Nzc=","avatar_url":"https://avatars0.githubusercontent.com/u/1770877?v=4","gravatar_id":"","url":"https://api.github.com/users/fraudies","html_url":"https://github.com/fraudies","followers_url":"https://api.github.com/users/fraudies/followers","following_url":"https://api.github.com/users/fraudies/following{/other_user}","gists_url":"https://api.github.com/users/fraudies/gists{/gist_id}","starred_url":"https://api.github.com/users/fraudies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fraudies/subscriptions","organizations_url":"https://api.github.com/users/fraudies/orgs","repos_url":"https://api.github.com/users/fraudies/repos","events_url":"https://api.github.com/users/fraudies/events{/privacy}","received_events_url":"https://api.github.com/users/fraudies/received_events","type":"User","site_admin":false},"body":"I've removed the comment.  \r\nFor clarification: They are when there is no schema resolution (otherwise not).","created_at":"2018-10-19T23:08:19Z","updated_at":"2018-10-19T23:08:19Z","html_url":"https://github.com/tensorflow/tensorflow/pull/18224#discussion_r226802077","pull_request_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/18224","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments/226802077"},"html":{"href":"https://github.com/tensorflow/tensorflow/pull/18224#discussion_r226802077"},"pull_request":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/18224"}},"in_reply_to_id":209786278},"pull_request":{"url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/18224","id":179261968,"node_id":"MDExOlB1bGxSZXF1ZXN0MTc5MjYxOTY4","html_url":"https://github.com/tensorflow/tensorflow/pull/18224","diff_url":"https://github.com/tensorflow/tensorflow/pull/18224.diff","patch_url":"https://github.com/tensorflow/tensorflow/pull/18224.patch","issue_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/18224","number":18224,"state":"open","locked":false,"title":"Added avro record dataset and avro record parse","user":{"login":"fraudies","id":1770877,"node_id":"MDQ6VXNlcjE3NzA4Nzc=","avatar_url":"https://avatars0.githubusercontent.com/u/1770877?v=4","gravatar_id":"","url":"https://api.github.com/users/fraudies","html_url":"https://github.com/fraudies","followers_url":"https://api.github.com/users/fraudies/followers","following_url":"https://api.github.com/users/fraudies/following{/other_user}","gists_url":"https://api.github.com/users/fraudies/gists{/gist_id}","starred_url":"https://api.github.com/users/fraudies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fraudies/subscriptions","organizations_url":"https://api.github.com/users/fraudies/orgs","repos_url":"https://api.github.com/users/fraudies/repos","events_url":"https://api.github.com/users/fraudies/events{/privacy}","received_events_url":"https://api.github.com/users/fraudies/received_events","type":"User","site_admin":false},"body":"** Added test cases\r\n\r\n** Added examples\r\n\r\n** Remove any tf. calls by directly calling the package function\r\n\r\n** Integrate into tensorflow build by adding avro 1.7.7 to setup.py and various shell scripts\r\n\r\n** Added readme file.\r\n\r\n@skye Sorry, this took a bit longer. We got everything integrated into the dataset API. Please review; especially the setup of the dependencies: avro and compilation of avroc.","created_at":"2018-04-04T01:43:26Z","updated_at":"2018-10-19T23:08:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fdd31a30cc92e5c133a6d205c6155488b6be1bdd","assignee":{"login":"skye","id":88808,"node_id":"MDQ6VXNlcjg4ODA4","avatar_url":"https://avatars1.githubusercontent.com/u/88808?v=4","gravatar_id":"","url":"https://api.github.com/users/skye","html_url":"https://github.com/skye","followers_url":"https://api.github.com/users/skye/followers","following_url":"https://api.github.com/users/skye/following{/other_user}","gists_url":"https://api.github.com/users/skye/gists{/gist_id}","starred_url":"https://api.github.com/users/skye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skye/subscriptions","organizations_url":"https://api.github.com/users/skye/orgs","repos_url":"https://api.github.com/users/skye/repos","events_url":"https://api.github.com/users/skye/events{/privacy}","received_events_url":"https://api.github.com/users/skye/received_events","type":"User","site_admin":false},"assignees":[{"login":"skye","id":88808,"node_id":"MDQ6VXNlcjg4ODA4","avatar_url":"https://avatars1.githubusercontent.com/u/88808?v=4","gravatar_id":"","url":"https://api.github.com/users/skye","html_url":"https://github.com/skye","followers_url":"https://api.github.com/users/skye/followers","following_url":"https://api.github.com/users/skye/following{/other_user}","gists_url":"https://api.github.com/users/skye/gists{/gist_id}","starred_url":"https://api.github.com/users/skye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skye/subscriptions","organizations_url":"https://api.github.com/users/skye/orgs","repos_url":"https://api.github.com/users/skye/repos","events_url":"https://api.github.com/users/skye/events{/privacy}","received_events_url":"https://api.github.com/users/skye/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"asimshankar","id":16018,"node_id":"MDQ6VXNlcjE2MDE4","avatar_url":"https://avatars2.githubusercontent.com/u/16018?v=4","gravatar_id":"","url":"https://api.github.com/users/asimshankar","html_url":"https://github.com/asimshankar","followers_url":"https://api.github.com/users/asimshankar/followers","following_url":"https://api.github.com/users/asimshankar/following{/other_user}","gists_url":"https://api.github.com/users/asimshankar/gists{/gist_id}","starred_url":"https://api.github.com/users/asimshankar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/asimshankar/subscriptions","organizations_url":"https://api.github.com/users/asimshankar/orgs","repos_url":"https://api.github.com/users/asimshankar/repos","events_url":"https://api.github.com/users/asimshankar/events{/privacy}","received_events_url":"https://api.github.com/users/asimshankar/received_events","type":"User","site_admin":false},{"login":"jhseu","id":170179,"node_id":"MDQ6VXNlcjE3MDE3OQ==","avatar_url":"https://avatars1.githubusercontent.com/u/170179?v=4","gravatar_id":"","url":"https://api.github.com/users/jhseu","html_url":"https://github.com/jhseu","followers_url":"https://api.github.com/users/jhseu/followers","following_url":"https://api.github.com/users/jhseu/following{/other_user}","gists_url":"https://api.github.com/users/jhseu/gists{/gist_id}","starred_url":"https://api.github.com/users/jhseu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jhseu/subscriptions","organizations_url":"https://api.github.com/users/jhseu/orgs","repos_url":"https://api.github.com/users/jhseu/repos","events_url":"https://api.github.com/users/jhseu/events{/privacy}","received_events_url":"https://api.github.com/users/jhseu/received_events","type":"User","site_admin":false},{"login":"frankchn","id":691628,"node_id":"MDQ6VXNlcjY5MTYyOA==","avatar_url":"https://avatars1.githubusercontent.com/u/691628?v=4","gravatar_id":"","url":"https://api.github.com/users/frankchn","html_url":"https://github.com/frankchn","followers_url":"https://api.github.com/users/frankchn/followers","following_url":"https://api.github.com/users/frankchn/following{/other_user}","gists_url":"https://api.github.com/users/frankchn/gists{/gist_id}","starred_url":"https://api.github.com/users/frankchn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/frankchn/subscriptions","organizations_url":"https://api.github.com/users/frankchn/orgs","repos_url":"https://api.github.com/users/frankchn/repos","events_url":"https://api.github.com/users/frankchn/events{/privacy}","received_events_url":"https://api.github.com/users/frankchn/received_events","type":"User","site_admin":false},{"login":"saeta","id":1284535,"node_id":"MDQ6VXNlcjEyODQ1MzU=","avatar_url":"https://avatars1.githubusercontent.com/u/1284535?v=4","gravatar_id":"","url":"https://api.github.com/users/saeta","html_url":"https://github.com/saeta","followers_url":"https://api.github.com/users/saeta/followers","following_url":"https://api.github.com/users/saeta/following{/other_user}","gists_url":"https://api.github.com/users/saeta/gists{/gist_id}","starred_url":"https://api.github.com/users/saeta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saeta/subscriptions","organizations_url":"https://api.github.com/users/saeta/orgs","repos_url":"https://api.github.com/users/saeta/repos","events_url":"https://api.github.com/users/saeta/events{/privacy}","received_events_url":"https://api.github.com/users/saeta/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":300136613,"node_id":"MDU6TGFiZWwzMDAxMzY2MTM=","url":"https://api.github.com/repos/tensorflow/tensorflow/labels/cla:%20no","name":"cla: no","color":"eb6420","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/18224/commits","review_comments_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/18224/comments","review_comment_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/18224/comments","statuses_url":"https://api.github.com/repos/tensorflow/tensorflow/statuses/09a504212e2aae7d13b25ebf572c1a93f226e89f","head":{"label":"fraudies:avro-oss","ref":"avro-oss","sha":"09a504212e2aae7d13b25ebf572c1a93f226e89f","user":{"login":"fraudies","id":1770877,"node_id":"MDQ6VXNlcjE3NzA4Nzc=","avatar_url":"https://avatars0.githubusercontent.com/u/1770877?v=4","gravatar_id":"","url":"https://api.github.com/users/fraudies","html_url":"https://github.com/fraudies","followers_url":"https://api.github.com/users/fraudies/followers","following_url":"https://api.github.com/users/fraudies/following{/other_user}","gists_url":"https://api.github.com/users/fraudies/gists{/gist_id}","starred_url":"https://api.github.com/users/fraudies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fraudies/subscriptions","organizations_url":"https://api.github.com/users/fraudies/orgs","repos_url":"https://api.github.com/users/fraudies/repos","events_url":"https://api.github.com/users/fraudies/events{/privacy}","received_events_url":"https://api.github.com/users/fraudies/received_events","type":"User","site_admin":false},"repo":{"id":111721399,"node_id":"MDEwOlJlcG9zaXRvcnkxMTE3MjEzOTk=","name":"tensorflow","full_name":"fraudies/tensorflow","private":false,"owner":{"login":"fraudies","id":1770877,"node_id":"MDQ6VXNlcjE3NzA4Nzc=","avatar_url":"https://avatars0.githubusercontent.com/u/1770877?v=4","gravatar_id":"","url":"https://api.github.com/users/fraudies","html_url":"https://github.com/fraudies","followers_url":"https://api.github.com/users/fraudies/followers","following_url":"https://api.github.com/users/fraudies/following{/other_user}","gists_url":"https://api.github.com/users/fraudies/gists{/gist_id}","starred_url":"https://api.github.com/users/fraudies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fraudies/subscriptions","organizations_url":"https://api.github.com/users/fraudies/orgs","repos_url":"https://api.github.com/users/fraudies/repos","events_url":"https://api.github.com/users/fraudies/events{/privacy}","received_events_url":"https://api.github.com/users/fraudies/received_events","type":"User","site_admin":false},"html_url":"https://github.com/fraudies/tensorflow","description":"Computation using data flow graphs for scalable machine learning","fork":true,"url":"https://api.github.com/repos/fraudies/tensorflow","forks_url":"https://api.github.com/repos/fraudies/tensorflow/forks","keys_url":"https://api.github.com/repos/fraudies/tensorflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fraudies/tensorflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fraudies/tensorflow/teams","hooks_url":"https://api.github.com/repos/fraudies/tensorflow/hooks","issue_events_url":"https://api.github.com/repos/fraudies/tensorflow/issues/events{/number}","events_url":"https://api.github.com/repos/fraudies/tensorflow/events","assignees_url":"https://api.github.com/repos/fraudies/tensorflow/assignees{/user}","branches_url":"https://api.github.com/repos/fraudies/tensorflow/branches{/branch}","tags_url":"https://api.github.com/repos/fraudies/tensorflow/tags","blobs_url":"https://api.github.com/repos/fraudies/tensorflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fraudies/tensorflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fraudies/tensorflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/fraudies/tensorflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fraudies/tensorflow/statuses/{sha}","languages_url":"https://api.github.com/repos/fraudies/tensorflow/languages","stargazers_url":"https://api.github.com/repos/fraudies/tensorflow/stargazers","contributors_url":"https://api.github.com/repos/fraudies/tensorflow/contributors","subscribers_url":"https://api.github.com/repos/fraudies/tensorflow/subscribers","subscription_url":"https://api.github.com/repos/fraudies/tensorflow/subscription","commits_url":"https://api.github.com/repos/fraudies/tensorflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/fraudies/tensorflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/fraudies/tensorflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/fraudies/tensorflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/fraudies/tensorflow/contents/{+path}","compare_url":"https://api.github.com/repos/fraudies/tensorflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fraudies/tensorflow/merges","archive_url":"https://api.github.com/repos/fraudies/tensorflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fraudies/tensorflow/downloads","issues_url":"https://api.github.com/repos/fraudies/tensorflow/issues{/number}","pulls_url":"https://api.github.com/repos/fraudies/tensorflow/pulls{/number}","milestones_url":"https://api.github.com/repos/fraudies/tensorflow/milestones{/number}","notifications_url":"https://api.github.com/repos/fraudies/tensorflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fraudies/tensorflow/labels{/name}","releases_url":"https://api.github.com/repos/fraudies/tensorflow/releases{/id}","deployments_url":"https://api.github.com/repos/fraudies/tensorflow/deployments","created_at":"2017-11-22T18:54:51Z","updated_at":"2018-10-17T00:07:03Z","pushed_at":"2018-10-18T18:34:14Z","git_url":"git://github.com/fraudies/tensorflow.git","ssh_url":"git@github.com:fraudies/tensorflow.git","clone_url":"https://github.com/fraudies/tensorflow.git","svn_url":"https://github.com/fraudies/tensorflow","homepage":"http://tensorflow.org","size":267994,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"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":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"tensorflow:master","ref":"master","sha":"9a20e435c5b4b941fd7014342b7a359e5c6cdd6b","user":{"login":"tensorflow","id":15658638,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NjU4NjM4","avatar_url":"https://avatars1.githubusercontent.com/u/15658638?v=4","gravatar_id":"","url":"https://api.github.com/users/tensorflow","html_url":"https://github.com/tensorflow","followers_url":"https://api.github.com/users/tensorflow/followers","following_url":"https://api.github.com/users/tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensorflow/subscriptions","organizations_url":"https://api.github.com/users/tensorflow/orgs","repos_url":"https://api.github.com/users/tensorflow/repos","events_url":"https://api.github.com/users/tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/tensorflow/received_events","type":"Organization","site_admin":false},"repo":{"id":45717250,"node_id":"MDEwOlJlcG9zaXRvcnk0NTcxNzI1MA==","name":"tensorflow","full_name":"tensorflow/tensorflow","private":false,"owner":{"login":"tensorflow","id":15658638,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NjU4NjM4","avatar_url":"https://avatars1.githubusercontent.com/u/15658638?v=4","gravatar_id":"","url":"https://api.github.com/users/tensorflow","html_url":"https://github.com/tensorflow","followers_url":"https://api.github.com/users/tensorflow/followers","following_url":"https://api.github.com/users/tensorflow/following{/other_user}","gists_url":"https://api.github.com/users/tensorflow/gists{/gist_id}","starred_url":"https://api.github.com/users/tensorflow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tensorflow/subscriptions","organizations_url":"https://api.github.com/users/tensorflow/orgs","repos_url":"https://api.github.com/users/tensorflow/repos","events_url":"https://api.github.com/users/tensorflow/events{/privacy}","received_events_url":"https://api.github.com/users/tensorflow/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/tensorflow/tensorflow","description":"An Open Source Machine Learning Framework for Everyone","fork":false,"url":"https://api.github.com/repos/tensorflow/tensorflow","forks_url":"https://api.github.com/repos/tensorflow/tensorflow/forks","keys_url":"https://api.github.com/repos/tensorflow/tensorflow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tensorflow/tensorflow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tensorflow/tensorflow/teams","hooks_url":"https://api.github.com/repos/tensorflow/tensorflow/hooks","issue_events_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/events{/number}","events_url":"https://api.github.com/repos/tensorflow/tensorflow/events","assignees_url":"https://api.github.com/repos/tensorflow/tensorflow/assignees{/user}","branches_url":"https://api.github.com/repos/tensorflow/tensorflow/branches{/branch}","tags_url":"https://api.github.com/repos/tensorflow/tensorflow/tags","blobs_url":"https://api.github.com/repos/tensorflow/tensorflow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tensorflow/tensorflow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tensorflow/tensorflow/git/refs{/sha}","trees_url":"https://api.github.com/repos/tensorflow/tensorflow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tensorflow/tensorflow/statuses/{sha}","languages_url":"https://api.github.com/repos/tensorflow/tensorflow/languages","stargazers_url":"https://api.github.com/repos/tensorflow/tensorflow/stargazers","contributors_url":"https://api.github.com/repos/tensorflow/tensorflow/contributors","subscribers_url":"https://api.github.com/repos/tensorflow/tensorflow/subscribers","subscription_url":"https://api.github.com/repos/tensorflow/tensorflow/subscription","commits_url":"https://api.github.com/repos/tensorflow/tensorflow/commits{/sha}","git_commits_url":"https://api.github.com/repos/tensorflow/tensorflow/git/commits{/sha}","comments_url":"https://api.github.com/repos/tensorflow/tensorflow/comments{/number}","issue_comment_url":"https://api.github.com/repos/tensorflow/tensorflow/issues/comments{/number}","contents_url":"https://api.github.com/repos/tensorflow/tensorflow/contents/{+path}","compare_url":"https://api.github.com/repos/tensorflow/tensorflow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tensorflow/tensorflow/merges","archive_url":"https://api.github.com/repos/tensorflow/tensorflow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tensorflow/tensorflow/downloads","issues_url":"https://api.github.com/repos/tensorflow/tensorflow/issues{/number}","pulls_url":"https://api.github.com/repos/tensorflow/tensorflow/pulls{/number}","milestones_url":"https://api.github.com/repos/tensorflow/tensorflow/milestones{/number}","notifications_url":"https://api.github.com/repos/tensorflow/tensorflow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tensorflow/tensorflow/labels{/name}","releases_url":"https://api.github.com/repos/tensorflow/tensorflow/releases{/id}","deployments_url":"https://api.github.com/repos/tensorflow/tensorflow/deployments","created_at":"2015-11-07T01:19:20Z","updated_at":"2018-10-19T23:08:04Z","pushed_at":"2018-10-19T23:05:49Z","git_url":"git://github.com/tensorflow/tensorflow.git","ssh_url":"git@github.com:tensorflow/tensorflow.git","clone_url":"https://github.com/tensorflow/tensorflow.git","svn_url":"https://github.com/tensorflow/tensorflow","homepage":"https://tensorflow.org","size":269339,"stargazers_count":112433,"watchers_count":112433,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":68731,"mirror_url":null,"archived":false,"open_issues_count":1715,"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":68731,"open_issues":1715,"watchers":112433,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/18224"},"html":{"href":"https://github.com/tensorflow/tensorflow/pull/18224"},"issue":{"href":"https://api.github.com/repos/tensorflow/tensorflow/issues/18224"},"comments":{"href":"https://api.github.com/repos/tensorflow/tensorflow/issues/18224/comments"},"review_comments":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/18224/comments"},"review_comment":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tensorflow/tensorflow/pulls/18224/commits"},"statuses":{"href":"https://api.github.com/repos/tensorflow/tensorflow/statuses/09a504212e2aae7d13b25ebf572c1a93f226e89f"}},"author_association":"NONE"}}
{"actor":{"display_login":"fraudies"}}