diff --git a/github/Issue.py b/github/Issue.py index 85b07661..b25c5e0b 100644 --- a/github/Issue.py +++ b/github/Issue.py @@ -6,6 +6,7 @@ # Copyright 2012 Philip Kimmey # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 Stuart Glaser # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/MainClass.py b/github/MainClass.py index a5d31524..d11521c7 100644 --- a/github/MainClass.py +++ b/github/MainClass.py @@ -2,6 +2,7 @@ ############################ Copyrights and license ############################ # # +# Copyright 2013 Ed Jackson # # Copyright 2013 Jonathan J Hunt # # Copyright 2013 Peter Golm # # Copyright 2013 Vincent Jacques # diff --git a/github/Repository.py b/github/Repository.py index cd2b8ecb..ae802612 100644 --- a/github/Repository.py +++ b/github/Repository.py @@ -6,6 +6,7 @@ # Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 Adrian Petrescu # # Copyright 2013 Mark Roddy # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # diff --git a/github/Requester.py b/github/Requester.py index 3528d1c6..5677501f 100644 --- a/github/Requester.py +++ b/github/Requester.py @@ -9,7 +9,9 @@ # Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 Ed Jackson # # Copyright 2013 Jonathan J Hunt # +# Copyright 2013 Mark Roddy # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/tests/Issue.py b/github/tests/Issue.py index c96e9742..02138ff6 100644 --- a/github/tests/Issue.py +++ b/github/tests/Issue.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 Stuart Glaser # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/tests/RateLimiting.py b/github/tests/RateLimiting.py index e797c96f..69d24e38 100644 --- a/github/tests/RateLimiting.py +++ b/github/tests/RateLimiting.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 Ed Jackson # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/scripts/compare_to_api_ref_doc.py b/scripts/compare_to_api_ref_doc.py index a3eb3fa4..a4c795c1 100755 --- a/scripts/compare_to_api_ref_doc.py +++ b/scripts/compare_to_api_ref_doc.py @@ -1,99 +1,120 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import os -import fnmatch -import glob - -# @todo Check links from our doc to Github API v3 ref -# - in the description of each class -# - in each ":calls:" section - - -def parseReference(): - badlyNamedUrls = { - ("/gitignore/templates/C", "GET"): ("/gitignore/templates/:name", "GET"), - ("/notifications/threads/1/subscription", "DELETE"): ("/notifications/threads/:id/subscription", "DELETE"), - ("/notifications/threads/1/subscription", "GET"): ("/notifications/threads/:id/subscription", "GET"), - ("/notifications/threads/1/subscription", "PUT"): ("/notifications/threads/:id/subscription", "PUT"), - } - undocumentedUrls = [ - ("/hooks", "GET"), # Mentioned somewhere - ("/hub", "POST"), # Described in content/v3/repos/hooks.md - ] - uninterestingUrls = [ - ("/markdown/raw", "POST"), # Job is done by /markdown => useless in PyGithub - ("/repos/octocat/Hello-World/git/refs/heads/feature-a", "DELETE"), # Example of DELETE /repos/:owner/:repo/git/refs/:ref - ("/repos/octocat/Hello-World/git/refs/tags/v1.0", "DELETE"), # Example of DELETE /repos/:owner/:repo/git/refs/:ref - ("/repos/:owner/:repo/git/trees/:sha?recursive=1", "GET"), # Example of GET /repos/:owner/:repo/git/trees/:sha - ("/repos/:owner/:repo/git/refs/heads/skunkworkz/featureA", "GET"), # Example of GET /repos/:owner/:repo/git/refs - ("/repos/:owner/:repo/git/refs/tags", "GET"), # Example of GET /repos/:owner/:repo/git/refs - ] - - urls = dict() - - for root, _, filenames in os.walk('developer.github.com'): - for filename in fnmatch.filter(filenames, '*.md'): - filename = os.path.join(root, filename) - with open(filename) as f: - for line in f: - if line.startswith("#"): - section = ("-".join(line.rstrip().split(" ")[1:])) ### @todo anchor-ify (lowercase, only a-z, etc.) - if line.startswith(" "): - line = line[4:] - if line.startswith("\t"): - line = line[1:] - for v in ["GET", "PATCH", "DELETE", "POST", "PUT"]: - if line.startswith(v + " /"): - verb, url = line.strip().split(" ") - url = (url, verb) - if url in badlyNamedUrls: - url = badlyNamedUrls[url] - docUrl = "http://developer.github.com/" + filename[29:-3] ### @todo + "#" + section - urls[url] = docUrl - - for url in undocumentedUrls: - urls[url] = "http://developer.github.com/" - - for url in uninterestingUrls: - del urls[url] - - return urls - - -def parseLibrary(): - urls = dict() - - for filename in glob.glob("github/*.py"): - with open(filename) as f: - for line in f: - if line.startswith(" :calls:"): - line = line[17:-3] - for part in line.split("`_ or `"): - verb, apiUrl, docUrl = part.split(" ") - docUrl = docUrl[1:-1] - urls[(apiUrl, verb)] = docUrl - - return urls - - -def printUrls(title, urls): - if len(urls) > 0: - print len(urls), "URLs", title + ":" - print " ", "\n ".join(url + " (" + verb + ")" for url, verb in sorted(urls)) - print - - -def main(): - ref = parseReference() - lib = parseLibrary() - printUrls("in Github API v3, but not implemented in PyGithub", set(ref) - set(lib)) - printUrls("called by PyGithub but not existing in Github API v3", set(lib) - set(ref)) - for key in set(lib) & set(ref): - (url, verb) = key - if lib[key] != ref[key]: - print "sed -i \"s@:calls: ." + verb + " " + url + " ." + lib[key] + ".._" + "@:calls: \\`" + verb + " " + url + " \\<" + ref[key] + "\\>\\`_@\" github/*.py" - - -if __name__ == "__main__": - main() +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import os +import fnmatch +import glob + +# @todo Check links from our doc to Github API v3 ref +# - in the description of each class +# - in each ":calls:" section + + +def parseReference(): + badlyNamedUrls = { + ("/gitignore/templates/C", "GET"): ("/gitignore/templates/:name", "GET"), + ("/notifications/threads/1/subscription", "DELETE"): ("/notifications/threads/:id/subscription", "DELETE"), + ("/notifications/threads/1/subscription", "GET"): ("/notifications/threads/:id/subscription", "GET"), + ("/notifications/threads/1/subscription", "PUT"): ("/notifications/threads/:id/subscription", "PUT"), + } + undocumentedUrls = [ + ("/hooks", "GET"), # Mentioned somewhere + ("/hub", "POST"), # Described in content/v3/repos/hooks.md + ] + uninterestingUrls = [ + ("/markdown/raw", "POST"), # Job is done by /markdown => useless in PyGithub + ("/repos/octocat/Hello-World/git/refs/heads/feature-a", "DELETE"), # Example of DELETE /repos/:owner/:repo/git/refs/:ref + ("/repos/octocat/Hello-World/git/refs/tags/v1.0", "DELETE"), # Example of DELETE /repos/:owner/:repo/git/refs/:ref + ("/repos/:owner/:repo/git/trees/:sha?recursive=1", "GET"), # Example of GET /repos/:owner/:repo/git/trees/:sha + ("/repos/:owner/:repo/git/refs/heads/skunkworkz/featureA", "GET"), # Example of GET /repos/:owner/:repo/git/refs + ("/repos/:owner/:repo/git/refs/tags", "GET"), # Example of GET /repos/:owner/:repo/git/refs + ] + + urls = dict() + + for root, _, filenames in os.walk('developer.github.com'): + for filename in fnmatch.filter(filenames, '*.md'): + filename = os.path.join(root, filename) + with open(filename) as f: + for line in f: + if line.startswith("#"): + section = ("-".join(line.rstrip().split(" ")[1:])) ### @todo anchor-ify (lowercase, only a-z, etc.) + if line.startswith(" "): + line = line[4:] + if line.startswith("\t"): + line = line[1:] + for v in ["GET", "PATCH", "DELETE", "POST", "PUT"]: + if line.startswith(v + " /"): + verb, url = line.strip().split(" ") + url = (url, verb) + if url in badlyNamedUrls: + url = badlyNamedUrls[url] + docUrl = "http://developer.github.com/" + filename[29:-3] ### @todo + "#" + section + urls[url] = docUrl + + for url in undocumentedUrls: + urls[url] = "http://developer.github.com/" + + for url in uninterestingUrls: + del urls[url] + + return urls + + +def parseLibrary(): + urls = dict() + + for filename in glob.glob("github/*.py"): + with open(filename) as f: + for line in f: + if line.startswith(" :calls:"): + line = line[17:-3] + for part in line.split("`_ or `"): + verb, apiUrl, docUrl = part.split(" ") + docUrl = docUrl[1:-1] + urls[(apiUrl, verb)] = docUrl + + return urls + + +def printUrls(title, urls): + if len(urls) > 0: + print len(urls), "URLs", title + ":" + print " ", "\n ".join(url + " (" + verb + ")" for url, verb in sorted(urls)) + print + + +def main(): + ref = parseReference() + lib = parseLibrary() + printUrls("in Github API v3, but not implemented in PyGithub", set(ref) - set(lib)) + printUrls("called by PyGithub but not existing in Github API v3", set(lib) - set(ref)) + for key in set(lib) & set(ref): + (url, verb) = key + if lib[key] != ref[key]: + print "sed -i \"s@:calls: ." + verb + " " + url + " ." + lib[key] + ".._" + "@:calls: \\`" + verb + " " + url + " \\<" + ref[key] + "\\>\\`_@\" github/*.py" + + +if __name__ == "__main__": + main() diff --git a/scripts/fix_headers.py b/scripts/fix_headers.py index 1ed32303..d578acd4 100755 --- a/scripts/fix_headers.py +++ b/scripts/fix_headers.py @@ -130,6 +130,8 @@ def findHeadersAndFiles(): for root, dirs, files in os.walk('.', topdown=True): if ".git" in dirs: dirs.remove(".git") + if "developer.github.com" in dirs: + dirs.remove("developer.github.com") for filename in files: fullname = os.path.join(root, filename) @@ -143,6 +145,8 @@ def findHeadersAndFiles(): yield (StandardHeader(), fullname) elif "ReplayData" in fullname: pass + elif fullname.endswith(".pyc"): + pass else: print "Don't know what to do with", filename