{"action":"created","comment":{"url":"https://api.github.com/repos/Capitains/MyCapytain/pulls/comments/90896067","pull_request_review_id":11409356,"id":90896067,"diff_hunk":"@@ -0,0 +1,432 @@\n+# -*- coding: utf-8 -*-\n+\"\"\"\n+.. module:: MyCapytain.resources.proto.text\n+   :synopsis: Prototypes for CitableText\n+\n+.. moduleauthor:: Thibault Clérice <leponteineptique@gmail.com>\n+\n+\n+\"\"\"\n+from past.builtins import basestring\n+from MyCapytain.common.reference import URN, Reference, Citation, NodeId\n+from MyCapytain.common.metadata import Metadata\n+from MyCapytain.common.utils import Mimetypes\n+from MyCapytain.resources.prototypes.metadata import Collection\n+\n+\n+class TextualElement(object):\n+    \"\"\" Node representing a text passage.\n+\n+    :param identifier: Identifier of the text\n+    :type identifier: str\n+    :param metadata: Collection Information about the Item\n+    :type metadata: Collection\n+\n+    :cvar default_exclude: Default exclude for exports\n+    \"\"\"\n+\n+    default_exclude = []\n+\n+    def __init__(self, identifier=None, metadata=None):\n+        self.__about__ = Collection()\n+        self.__identifier__ = identifier\n+        if metadata:\n+            self.metadata = metadata\n+\n+    @property\n+    def text(self):\n+        return self.export(output=Mimetypes.PLAINTEXT, exclude=self.default_exclude)\n+\n+    @property\n+    def id(self):\n+        return self.__identifier__\n+\n+    @property\n+    def about(self):\n+        \"\"\" Metadata information about the text\n+\n+        :return: Collection object with metadata about the text\n+        \"\"\"\n+        return self.__about__\n+\n+    @about.setter\n+    def about(self, value):\n+        \"\"\" Set the metadata collection attribute\n+\n+        :param value: Collection of metadata\n+        :type value: Collection\n+        \"\"\"\n+        if isinstance(value, Collection):\n+            self.__about__ = value\n+        else:\n+            raise TypeError(\".about should be an instance of Collection\")\n+\n+    @property\n+    def metadata(self):\n+        \"\"\" Metadata information about the text\n+\n+        :return: Collection object with metadata about the text\n+        \"\"\"\n+        return self.about.metadata\n+\n+    @metadata.setter\n+    def metadata(self, value):\n+        \"\"\" Set the metadata collection attribute\n+\n+        :param value: Collection of metadata\n+        :type value: Collection\n+        \"\"\"\n+        if isinstance(value, Metadata):\n+            self.about.metadata = value\n+        else:\n+            raise TypeError(\".metadata should be an instance of Metadata\")\n+\n+    def default_export(self, output=Mimetypes.JSON.DTS, exclude=None):\n+        \"\"\" Export the textual node item in the Mimetype required\n+\n+        :param output: Mimetype to export to (Uses MyCapytain.common.utils.Mimetypes)\n+        :type output: str\n+        :param exclude: Informations to exclude. Specific to implementations\n+        :type exclude: [str]\n+        :return: Object using a different representation\n+        \"\"\"\n+        raise NotImplementedError\n+\n+    def export(self, output=None, exclude=None):\n+        \"\"\" Export the collection item in the Mimetype required.\n+\n+        ..note:: If current implementation does not have special mimetypes, reuses default_export method\n+\n+        :param output: Mimetype to export to (Uses MyCapytain.common.utils.Mimetypes)\n+        :type output: str\n+        :param exclude: Informations to exclude. Specific to implementations\n+        :type exclude: [str]\n+        :return: Object using a different representation\n+        \"\"\"\n+        raise NotImplementedError(\n+            \"Mimetype {} has not been implemented for this resource\".format(output or \"(No Mimetype)\")\n+        )\n+\n+\n+class TextualNode(TextualElement, NodeId):\n+    \"\"\" Node representing a text passage.\n+\n+    :param identifier: Identifier of the text\n+    :type identifier: str\n+    :param metadata: Collection Information about the Item\n+    :type metadata: Collection\n+    :param citation: Citation system of the text\n+    :type citation: Citation\n+    :param children: Current node Children's Identifier\n+    :type children: [str]\n+    :param parent: Parent of the current node\n+    :type parent: str\n+    :param siblings: Previous and next node of the current node\n+    :type siblings: str\n+    :param depth: Depth of the node in the global hierarchy of the text tree\n+    :type depth: int\n+\n+    :cvar default_exclude: Default exclude for exports\n+    \"\"\"\n+\n+    def __init__(self, identifier=None, citation=None, **kwargs):\n+        super(TextualNode, self).__init__(identifier=identifier, **kwargs)\n+        self.__citation__ = citation or Citation()\n+\n+    @property\n+    def citation(self):\n+        \"\"\"\n+        :rtype: Citation\n+        \"\"\"\n+        return self.__citation__\n+\n+    @citation.setter\n+    def citation(self, value):\n+        if not isinstance(value, Citation):\n+            raise TypeError(\"Citation property can only be a Citation object\")\n+        self.__citation__ = value\n+\n+\n+class TextualGraph(TextualNode):\n+    \"\"\" Node representing a text passage.\n+\n+    :param identifier: Identifier of the text\n+    :type identifier: str\n+    :param metadata: Collection Information about the Item\n+    :type metadata: Collection\n+    :param citation: Citation system of the text\n+    :type citation: Citation\n+    :param children: Current node Children's Identifier\n+    :type children: [str]\n+    :param parent: Parent of the current node\n+    :type parent: str\n+    :param siblings: Previous and next node of the current node\n+    :type siblings: str\n+    :param depth: Depth of the node in the global hierarchy of the text tree\n+    :type depth: int\n+    :param resource: Resource used to navigate through the textual graph\n+\n+    :cvar default_exclude: Default exclude for exports\n+    \"\"\"\n+    def __init__(self, identifier=None, **kwargs):\n+        super(TextualGraph, self).__init__(identifier=identifier, **kwargs)\n+\n+    def getPassage(self, reference):\n+        \"\"\" Retrieve a passage and store it in the object\n+\n+        :param reference: Reference of the passage to retrieve\n+        :type reference: str or Node or Reference\n+        :rtype: TextualNode\n+        :returns: Object representing the passage\n+\n+        :raises: *TypeError* when reference is not a list or a Reference\n+        \"\"\"\n+\n+        raise NotImplementedError()\n+\n+    def getReffs(self, level=1, reference=None):\n+        \"\"\" Reference available at a given level\n+\n+        :param level: Depth required. If not set, should retrieve first encountered level (1 based)\n+        :type level: Int\n+        :param passage: Subreference (optional)\n+        :type passage: Reference\n+        :rtype: List.basestring\n+        :returns: List of levels\n+        \"\"\"\n+        raise NotImplementedError()\n+\n+\n+class InteractiveTextualNode(TextualGraph):\n+    \"\"\" Node representing a text passage.\n+\n+    :param identifier: Identifier of the text\n+    :type identifier: str\n+    :param metadata: Collection Information about the Item\n+    :type metadata: Collection\n+    :param citation: Citation system of the text\n+    :type citation: Citation\n+    :param children: Current node Children's Identifier\n+    :type children: [str]\n+    :param parent: Parent of the current node\n+    :type parent: str\n+    :param siblings: Previous and next node of the current node\n+    :type siblings: str\n+    :param depth: Depth of the node in the global hierarchy of the text tree\n+    :type depth: int\n+    :param resource: Resource used to navigate through the textual graph\n+\n+    :cvar default_exclude: Default exclude for exports\n+    \"\"\"\n+    def __init__(self, identifier=None, **kwargs):\n+        super(InteractiveTextualNode, self).__init__(identifier=identifier, **kwargs)\n+        self.__childIds__ = None\n+\n+    @property\n+    def prev(self):\n+        \"\"\" Get Previous Passage\n+\n+        :rtype: Passage\n+        \"\"\"\n+        if self.prevId is not None:\n+            return self.getPassage(self.prevId)\n+\n+    @property\n+    def next(self):\n+        \"\"\" Get Next Passage\n+\n+        :rtype: Passage\n+        \"\"\"\n+        if self.nextId is not None:\n+            return self.getPassage(self.nextId)\n+\n+    @property\n+    def children(self):\n+        \"\"\" Children Passages\n+\n+        :rtype: iterator(Passage)\n+        \"\"\"\n+        for ID in self.childIds:\n+            yield self.getPassage(ID)\n+\n+    @property\n+    def parent(self):\n+        \"\"\" Parent Passage\n+\n+        :rtype: Passage\n+        \"\"\"\n+        return self.getPassage(self.parentId)\n+\n+    @property\n+    def first(self):\n+        \"\"\" First Passage\n+\n+        :rtype: Passage\n+        \"\"\"\n+        if self.firstId is not None:\n+            return self.getPassage(self.firstId)\n+\n+    @property\n+    def last(self):\n+        \"\"\" Last Passage\n+\n+        :rtype: Passage\n+        \"\"\"\n+        if self.lastId is not None:\n+            return self.getPassage(self.lastId)\n+\n+    @property\n+    def childIds(self):\n+        if self.__childIds__ is None:\n+            self.__childIds__ = self.getReffs()\n+        return self.__childIds__\n+\n+    @property\n+    def firstId(self):\n+        \"\"\" First child of current Passage\n+\n+        :rtype: Node\n+        :returns: First passage node Information\n+        \"\"\"\n+        if self.childIds is not None:\n+            if len(self.childIds) > 0:\n+                return self.childIds[0]\n+            return None\n+        else:\n+            raise NotImplementedError\n+\n+    @property\n+    def lastId(self):\n+        \"\"\" Last child of current Passage\n+\n+        :rtype: Node\n+        :returns: Last passage Node representation\n+        \"\"\"\n+        if self.childIds is not None:\n+            if len(self.childIds) > 0:\n+                return self.childIds[-1]\n+            return None\n+        else:\n+            raise NotImplementedError\n+\n+\n+class CTSNode(InteractiveTextualNode):\n+    \"\"\" Initiate a Resource object\n+    \n+    :param urn: A URN identifier\n+    :type urn: URN\n+    :param metadata: Collection Information about the Item\n+    :type metadata: Collection\n+    :param citation: Citation system of the text\n+    :type citation: Citation\n+    :param children: Current node Children's Identifier\n+    :type children: [str]\n+    :param parent: Parent of the current node\n+    :type parent: str\n+    :param siblings: Previous and next node of the current node\n+    :type siblings: str\n+    :param depth: Depth of the node in the global hierarchy of the text tree\n+    :type depth: int\n+    :param resource: Resource used to navigate through the textual graph\n+\n+    :cvar default_exclude: Default exclude for exports\n+    \"\"\"\n+\n+    def __init__(self, urn=None, **kwargs):\n+        super(CTSNode, self).__init__(identifier=str(urn), **kwargs)\n+        self.__urn__ = None\n+\n+        if urn is not None:\n+            self.urn = urn\n+\n+    @property\n+    def urn(self):\n+        \"\"\" URN Identifier of the object\n+\n+        :rtype: URN\n+        \"\"\"\n+        return self.__urn__\n+    \n+    @urn.setter\n+    def urn(self, value):\n+        \"\"\" Set the urn\n+\n+        :param value: URN to be saved\n+        :type value:  URN\n+        :raises: *TypeError* when the value is not URN compatible\n+\n+        \"\"\"\n+        if isinstance(value, basestring):\n+            value = URN(value)\n+        elif not isinstance(value, URN):\n+            raise TypeError()\n+        self.__urn__ = value\n+\n+    def getValidReff(self, level=1, reference=None):\n+        \"\"\" Given a resource, CitableText will compute valid reffs\n+\n+        :param level: Depth required. If not set, should retrieve first encountered level (1 based)\n+        :type level: Int\n+        :param passage: Subreference (optional)\n+        :type passage: Reference\n+        :rtype: List.basestring\n+        :returns: List of levels\n+        \"\"\"\n+        raise NotImplementedError()\n+\n+    def getLabel(self):\n+        \"\"\" Retrieve metadata about the text\n+\n+        :rtype: Collection\n+        :returns: Retrieve Label informations in a Collection format\n+        \"\"\"\n+        raise NotImplementedError()\n+\n+\n+class Passage(CTSNode):\n+    \"\"\" Passage objects possess metadata informations\n+\n+    :param urn: A URN identifier\n+    :type urn: URN\n+    :param metadata: Collection Information about the Item\n+    :type metadata: Collection\n+    :param citation: Citation system of the text\n+    :type citation: Citation\n+    :param children: Current node Children's Identifier\n+    :type children: [str]\n+    :param parent: Parent of the current node\n+    :type parent: str\n+    :param siblings: Previous and next node of the current node\n+    :type siblings: str\n+    :param depth: Depth of the node in the global hierarchy of the text tree\n+    :type depth: int\n+    :param resource: Resource used to navigate through the textual graph\n+\n+    :cvar default_exclude: Default exclude for exports\n+    \"\"\"\n+\n+    def __init__(self, **kwargs):\n+        super(Passage, self).__init__(**kwargs)\n+\n+    @property\n+    def reference(self):","path":"MyCapytain/resources/prototypes/text.py","position":412,"original_position":412,"commit_id":"6f8f3801e58f03495dca962ad2b2b31e441f5702","original_commit_id":"6f8f3801e58f03495dca962ad2b2b31e441f5702","user":{"login":"codacy-bot","id":19940114,"avatar_url":"https://avatars.githubusercontent.com/u/19940114?v=3","gravatar_id":"","url":"https://api.github.com/users/codacy-bot","html_url":"https://github.com/codacy-bot","followers_url":"https://api.github.com/users/codacy-bot/followers","following_url":"https://api.github.com/users/codacy-bot/following{/other_user}","gists_url":"https://api.github.com/users/codacy-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/codacy-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codacy-bot/subscriptions","organizations_url":"https://api.github.com/users/codacy-bot/orgs","repos_url":"https://api.github.com/users/codacy-bot/repos","events_url":"https://api.github.com/users/codacy-bot/events{/privacy}","received_events_url":"https://api.github.com/users/codacy-bot/received_events","type":"User","site_admin":false},"body":"![Codacy](https://www.codacy.com/assets/images/favicon.png) Issue found: [Missing method docstring](https://www.codacy.com/app/leponteineptique/MyCapytain/file/4646393697/issues/source?bid=3229936&fileBranchId=3965020#l412)","created_at":"2016-12-05T16:08:27Z","updated_at":"2016-12-05T16:08:27Z","html_url":"https://github.com/Capitains/MyCapytain/pull/95#discussion_r90896067","pull_request_url":"https://api.github.com/repos/Capitains/MyCapytain/pulls/95","_links":{"self":{"href":"https://api.github.com/repos/Capitains/MyCapytain/pulls/comments/90896067"},"html":{"href":"https://github.com/Capitains/MyCapytain/pull/95#discussion_r90896067"},"pull_request":{"href":"https://api.github.com/repos/Capitains/MyCapytain/pulls/95"}}},"pull_request":{"url":"https://api.github.com/repos/Capitains/MyCapytain/pulls/95","id":96556473,"html_url":"https://github.com/Capitains/MyCapytain/pull/95","diff_url":"https://github.com/Capitains/MyCapytain/pull/95.diff","patch_url":"https://github.com/Capitains/MyCapytain/pull/95.patch","issue_url":"https://api.github.com/repos/Capitains/MyCapytain/issues/95","number":95,"state":"open","locked":false,"title":"MyCapytain 2.0.0 beta","user":{"login":"PonteIneptique","id":1929830,"avatar_url":"https://avatars.githubusercontent.com/u/1929830?v=3","gravatar_id":"","url":"https://api.github.com/users/PonteIneptique","html_url":"https://github.com/PonteIneptique","followers_url":"https://api.github.com/users/PonteIneptique/followers","following_url":"https://api.github.com/users/PonteIneptique/following{/other_user}","gists_url":"https://api.github.com/users/PonteIneptique/gists{/gist_id}","starred_url":"https://api.github.com/users/PonteIneptique/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PonteIneptique/subscriptions","organizations_url":"https://api.github.com/users/PonteIneptique/orgs","repos_url":"https://api.github.com/users/PonteIneptique/repos","events_url":"https://api.github.com/users/PonteIneptique/events{/privacy}","received_events_url":"https://api.github.com/users/PonteIneptique/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-12-05T16:02:38Z","updated_at":"2016-12-05T16:08:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"10277a89c74b8613c0d8eb34a4ea362b79f12b9c","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/Capitains/MyCapytain/pulls/95/commits","review_comments_url":"https://api.github.com/repos/Capitains/MyCapytain/pulls/95/comments","review_comment_url":"https://api.github.com/repos/Capitains/MyCapytain/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Capitains/MyCapytain/issues/95/comments","statuses_url":"https://api.github.com/repos/Capitains/MyCapytain/statuses/6f8f3801e58f03495dca962ad2b2b31e441f5702","head":{"label":"Capitains:dts-dev","ref":"dts-dev","sha":"6f8f3801e58f03495dca962ad2b2b31e441f5702","user":{"login":"Capitains","id":11524150,"avatar_url":"https://avatars.githubusercontent.com/u/11524150?v=3","gravatar_id":"","url":"https://api.github.com/users/Capitains","html_url":"https://github.com/Capitains","followers_url":"https://api.github.com/users/Capitains/followers","following_url":"https://api.github.com/users/Capitains/following{/other_user}","gists_url":"https://api.github.com/users/Capitains/gists{/gist_id}","starred_url":"https://api.github.com/users/Capitains/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Capitains/subscriptions","organizations_url":"https://api.github.com/users/Capitains/orgs","repos_url":"https://api.github.com/users/Capitains/repos","events_url":"https://api.github.com/users/Capitains/events{/privacy}","received_events_url":"https://api.github.com/users/Capitains/received_events","type":"Organization","site_admin":false},"repo":{"id":38295132,"name":"MyCapytain","full_name":"Capitains/MyCapytain","owner":{"login":"Capitains","id":11524150,"avatar_url":"https://avatars.githubusercontent.com/u/11524150?v=3","gravatar_id":"","url":"https://api.github.com/users/Capitains","html_url":"https://github.com/Capitains","followers_url":"https://api.github.com/users/Capitains/followers","following_url":"https://api.github.com/users/Capitains/following{/other_user}","gists_url":"https://api.github.com/users/Capitains/gists{/gist_id}","starred_url":"https://api.github.com/users/Capitains/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Capitains/subscriptions","organizations_url":"https://api.github.com/users/Capitains/orgs","repos_url":"https://api.github.com/users/Capitains/repos","events_url":"https://api.github.com/users/Capitains/events{/privacy}","received_events_url":"https://api.github.com/users/Capitains/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Capitains/MyCapytain","description":"CTS Abstraction for Python 2.7 and 3.4","fork":false,"url":"https://api.github.com/repos/Capitains/MyCapytain","forks_url":"https://api.github.com/repos/Capitains/MyCapytain/forks","keys_url":"https://api.github.com/repos/Capitains/MyCapytain/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Capitains/MyCapytain/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Capitains/MyCapytain/teams","hooks_url":"https://api.github.com/repos/Capitains/MyCapytain/hooks","issue_events_url":"https://api.github.com/repos/Capitains/MyCapytain/issues/events{/number}","events_url":"https://api.github.com/repos/Capitains/MyCapytain/events","assignees_url":"https://api.github.com/repos/Capitains/MyCapytain/assignees{/user}","branches_url":"https://api.github.com/repos/Capitains/MyCapytain/branches{/branch}","tags_url":"https://api.github.com/repos/Capitains/MyCapytain/tags","blobs_url":"https://api.github.com/repos/Capitains/MyCapytain/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Capitains/MyCapytain/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Capitains/MyCapytain/git/refs{/sha}","trees_url":"https://api.github.com/repos/Capitains/MyCapytain/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Capitains/MyCapytain/statuses/{sha}","languages_url":"https://api.github.com/repos/Capitains/MyCapytain/languages","stargazers_url":"https://api.github.com/repos/Capitains/MyCapytain/stargazers","contributors_url":"https://api.github.com/repos/Capitains/MyCapytain/contributors","subscribers_url":"https://api.github.com/repos/Capitains/MyCapytain/subscribers","subscription_url":"https://api.github.com/repos/Capitains/MyCapytain/subscription","commits_url":"https://api.github.com/repos/Capitains/MyCapytain/commits{/sha}","git_commits_url":"https://api.github.com/repos/Capitains/MyCapytain/git/commits{/sha}","comments_url":"https://api.github.com/repos/Capitains/MyCapytain/comments{/number}","issue_comment_url":"https://api.github.com/repos/Capitains/MyCapytain/issues/comments{/number}","contents_url":"https://api.github.com/repos/Capitains/MyCapytain/contents/{+path}","compare_url":"https://api.github.com/repos/Capitains/MyCapytain/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Capitains/MyCapytain/merges","archive_url":"https://api.github.com/repos/Capitains/MyCapytain/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Capitains/MyCapytain/downloads","issues_url":"https://api.github.com/repos/Capitains/MyCapytain/issues{/number}","pulls_url":"https://api.github.com/repos/Capitains/MyCapytain/pulls{/number}","milestones_url":"https://api.github.com/repos/Capitains/MyCapytain/milestones{/number}","notifications_url":"https://api.github.com/repos/Capitains/MyCapytain/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Capitains/MyCapytain/labels{/name}","releases_url":"https://api.github.com/repos/Capitains/MyCapytain/releases{/id}","deployments_url":"https://api.github.com/repos/Capitains/MyCapytain/deployments","created_at":"2015-06-30T07:43:55Z","updated_at":"2016-02-10T11:04:59Z","pushed_at":"2016-12-05T16:05:08Z","git_url":"git://github.com/Capitains/MyCapytain.git","ssh_url":"git@github.com:Capitains/MyCapytain.git","clone_url":"https://github.com/Capitains/MyCapytain.git","svn_url":"https://github.com/Capitains/MyCapytain","homepage":"http://mycapytain.readthedocs.org","size":4188,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":19,"forks":2,"open_issues":19,"watchers":1,"default_branch":"master"}},"base":{"label":"Capitains:master","ref":"master","sha":"b68e6d03b525389d082a7f040c963e05ec552c5d","user":{"login":"Capitains","id":11524150,"avatar_url":"https://avatars.githubusercontent.com/u/11524150?v=3","gravatar_id":"","url":"https://api.github.com/users/Capitains","html_url":"https://github.com/Capitains","followers_url":"https://api.github.com/users/Capitains/followers","following_url":"https://api.github.com/users/Capitains/following{/other_user}","gists_url":"https://api.github.com/users/Capitains/gists{/gist_id}","starred_url":"https://api.github.com/users/Capitains/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Capitains/subscriptions","organizations_url":"https://api.github.com/users/Capitains/orgs","repos_url":"https://api.github.com/users/Capitains/repos","events_url":"https://api.github.com/users/Capitains/events{/privacy}","received_events_url":"https://api.github.com/users/Capitains/received_events","type":"Organization","site_admin":false},"repo":{"id":38295132,"name":"MyCapytain","full_name":"Capitains/MyCapytain","owner":{"login":"Capitains","id":11524150,"avatar_url":"https://avatars.githubusercontent.com/u/11524150?v=3","gravatar_id":"","url":"https://api.github.com/users/Capitains","html_url":"https://github.com/Capitains","followers_url":"https://api.github.com/users/Capitains/followers","following_url":"https://api.github.com/users/Capitains/following{/other_user}","gists_url":"https://api.github.com/users/Capitains/gists{/gist_id}","starred_url":"https://api.github.com/users/Capitains/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Capitains/subscriptions","organizations_url":"https://api.github.com/users/Capitains/orgs","repos_url":"https://api.github.com/users/Capitains/repos","events_url":"https://api.github.com/users/Capitains/events{/privacy}","received_events_url":"https://api.github.com/users/Capitains/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Capitains/MyCapytain","description":"CTS Abstraction for Python 2.7 and 3.4","fork":false,"url":"https://api.github.com/repos/Capitains/MyCapytain","forks_url":"https://api.github.com/repos/Capitains/MyCapytain/forks","keys_url":"https://api.github.com/repos/Capitains/MyCapytain/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Capitains/MyCapytain/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Capitains/MyCapytain/teams","hooks_url":"https://api.github.com/repos/Capitains/MyCapytain/hooks","issue_events_url":"https://api.github.com/repos/Capitains/MyCapytain/issues/events{/number}","events_url":"https://api.github.com/repos/Capitains/MyCapytain/events","assignees_url":"https://api.github.com/repos/Capitains/MyCapytain/assignees{/user}","branches_url":"https://api.github.com/repos/Capitains/MyCapytain/branches{/branch}","tags_url":"https://api.github.com/repos/Capitains/MyCapytain/tags","blobs_url":"https://api.github.com/repos/Capitains/MyCapytain/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Capitains/MyCapytain/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Capitains/MyCapytain/git/refs{/sha}","trees_url":"https://api.github.com/repos/Capitains/MyCapytain/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Capitains/MyCapytain/statuses/{sha}","languages_url":"https://api.github.com/repos/Capitains/MyCapytain/languages","stargazers_url":"https://api.github.com/repos/Capitains/MyCapytain/stargazers","contributors_url":"https://api.github.com/repos/Capitains/MyCapytain/contributors","subscribers_url":"https://api.github.com/repos/Capitains/MyCapytain/subscribers","subscription_url":"https://api.github.com/repos/Capitains/MyCapytain/subscription","commits_url":"https://api.github.com/repos/Capitains/MyCapytain/commits{/sha}","git_commits_url":"https://api.github.com/repos/Capitains/MyCapytain/git/commits{/sha}","comments_url":"https://api.github.com/repos/Capitains/MyCapytain/comments{/number}","issue_comment_url":"https://api.github.com/repos/Capitains/MyCapytain/issues/comments{/number}","contents_url":"https://api.github.com/repos/Capitains/MyCapytain/contents/{+path}","compare_url":"https://api.github.com/repos/Capitains/MyCapytain/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Capitains/MyCapytain/merges","archive_url":"https://api.github.com/repos/Capitains/MyCapytain/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Capitains/MyCapytain/downloads","issues_url":"https://api.github.com/repos/Capitains/MyCapytain/issues{/number}","pulls_url":"https://api.github.com/repos/Capitains/MyCapytain/pulls{/number}","milestones_url":"https://api.github.com/repos/Capitains/MyCapytain/milestones{/number}","notifications_url":"https://api.github.com/repos/Capitains/MyCapytain/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Capitains/MyCapytain/labels{/name}","releases_url":"https://api.github.com/repos/Capitains/MyCapytain/releases{/id}","deployments_url":"https://api.github.com/repos/Capitains/MyCapytain/deployments","created_at":"2015-06-30T07:43:55Z","updated_at":"2016-02-10T11:04:59Z","pushed_at":"2016-12-05T16:05:08Z","git_url":"git://github.com/Capitains/MyCapytain.git","ssh_url":"git@github.com:Capitains/MyCapytain.git","clone_url":"https://github.com/Capitains/MyCapytain.git","svn_url":"https://github.com/Capitains/MyCapytain","homepage":"http://mycapytain.readthedocs.org","size":4188,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":19,"forks":2,"open_issues":19,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Capitains/MyCapytain/pulls/95"},"html":{"href":"https://github.com/Capitains/MyCapytain/pull/95"},"issue":{"href":"https://api.github.com/repos/Capitains/MyCapytain/issues/95"},"comments":{"href":"https://api.github.com/repos/Capitains/MyCapytain/issues/95/comments"},"review_comments":{"href":"https://api.github.com/repos/Capitains/MyCapytain/pulls/95/comments"},"review_comment":{"href":"https://api.github.com/repos/Capitains/MyCapytain/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Capitains/MyCapytain/pulls/95/commits"},"statuses":{"href":"https://api.github.com/repos/Capitains/MyCapytain/statuses/6f8f3801e58f03495dca962ad2b2b31e441f5702"}}}}
{"actor":{"display_login":"codacy-bot"}}